diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index 88ef4887c6..8069568eb7 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -231,16 +231,6 @@ public class Config { @Nullable public static GameGuidePopupEntity getGameGuidePopupEntity() { - if (mGameGuidePopupEntity == null) { - try { - String json = SPUtils.getString(Constants.SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT); - if (!TextUtils.isEmpty(json)) { - mGameGuidePopupEntity = GsonUtils.fromJson(json, GameGuidePopupEntity.class); - } - } catch (Exception e) { - e.printStackTrace(); - } - } return mGameGuidePopupEntity; } @@ -341,7 +331,6 @@ public class Config { @Override public void onSuccess(GameGuidePopupEntity data) { mGameGuidePopupEntity = data; - SPUtils.setString(Constants.SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT, GsonUtils.toJson(data)); } }); } diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 3405395391..18ca0d4dae 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -221,8 +221,7 @@ public class Constants { public static final String SP_FORUM_DETAIL_MODERATOR_GUIDE = "forum_detail_moderator_guide"; // 游戏详情安装引导 public static final String SP_GAME_DETAIL_INSTALL_GUIDE = "game_detail_install_guide"; - // 游戏详情安装引导内容 - public static final String SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT = "game_detail_install_guide_content"; + public static final String SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE = "should_show_game_detail_install_guide"; //手机号码匹配规则 public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; diff --git a/app/src/main/java/com/gh/common/util/GameUtils.java b/app/src/main/java/com/gh/common/util/GameUtils.java index 5d9b9940bf..dfeeade1e3 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -272,19 +272,4 @@ public class GameUtils { } return null; } - - public static boolean checkDownloadStatus(Context context, GameEntity gameEntity, DownloadStatus downloadStatus){ - DownloadEntity downloadEntity; - for (ApkEntity apkEntity : gameEntity.getApk()) { - // filter by packageName - downloadEntity = DownloadManager.getInstance(context).getDownloadEntityByUrl(apkEntity.getUrl()); - if (downloadEntity != null) { - if (downloadEntity.getStatus().equals(downloadStatus)){ - return true; - } - } - } - return false; - } - } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index 62a86af9e3..af01177cb8 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -271,9 +271,7 @@ class GameDetailFragment : NormalFragment() { if (downloadEntity.gameId == mViewModel.gameId) { if (downloadEntity.status == DownloadStatus.add || downloadEntity.status == DownloadStatus.done || downloadEntity.status == DownloadStatus.downloading || downloadEntity.status == DownloadStatus.pause || downloadEntity.status == DownloadStatus.redirected) { showInstallHint() - } - if (downloadEntity.status == DownloadStatus.cancel) { - hideInstallHint() + SPUtils.setBoolean(Constants.SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE, true) } } if (mGameEntity != null && mGameEntity!!.getApk().size == 1) { @@ -541,6 +539,14 @@ class GameDetailFragment : NormalFragment() { mToolbar.setNavigationOnClickListener { requireActivity().finish() } mConcernIv.visibility = View.VISIBLE mConcernTv.visibility = View.VISIBLE + + if (mViewModel.game != null) { + if (SPUtils.getBoolean(Constants.SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE, false) && !mViewModel.game!!.isReservable) { + if (mViewModel.game!!.downloadOffText?.isEmpty() == true){ + showInstallHint() + } + } + } } @Subscribe(threadMode = ThreadMode.MAIN) @@ -556,7 +562,6 @@ class GameDetailFragment : NormalFragment() { if (gameResource.status == Status.SUCCESS) { mViewModel.logHistory(gameResource.data!!) mGameEntity = gameResource.data - controlInstallHint() // 添加启动弹窗的相关信息 if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) && mEntrance.countOccurrences("+") <= 1 @@ -1466,23 +1471,6 @@ class GameDetailFragment : NormalFragment() { } } - private fun controlInstallHint() { - val status = GameUtils.getDownloadBtnText( - requireContext(), - mGameEntity, - PluginLocation.only_game - ) - val isPause = GameUtils.checkDownloadStatus(requireContext(), mGameEntity, DownloadStatus.pause) - val isDownloading = GameUtils.checkDownloadStatus(requireContext(), mGameEntity, DownloadStatus.downloading) - val isDone = GameUtils.checkDownloadStatus(requireContext(), mGameEntity, DownloadStatus.done) - if (isDownloading || status == getString(R.string.install) || status == getString(R.string.unzipping) || isPause || isDone) { - showInstallHint() - } - if ((status == getString(R.string.download) && !isPause && !isDownloading) || (status == getString(R.string.expand) && !isPause && !isDownloading && !isDone) || status == getString(R.string.launch) || status == getString(R.string.open)){ - hideInstallHint() - } - } - private fun showInstallHint() { val gameGuidePopupEntity = Config.getGameGuidePopupEntity() if (SPUtils.getBoolean(Constants.SP_GAME_DETAIL_INSTALL_GUIDE, true) && gameGuidePopupEntity != null) { @@ -1498,17 +1486,13 @@ class GameDetailFragment : NormalFragment() { ) } mInstallCloseIv.setDebouncedClickListener { - hideInstallHint() + mInstallContainer.visibility = View.GONE SPUtils.setBoolean(Constants.SP_GAME_DETAIL_INSTALL_GUIDE, false) NewLogUtils.logGuidePopClose(gameGuidePopupEntity.id) } } } - private fun hideInstallHint() { - mInstallContainer.visibility = View.GONE - } - private fun initRecommendUI() { val recommendPopupList = mViewModel.recommendPopupLiveData.value mRecommendPopupEntity = @@ -1633,7 +1617,6 @@ class GameDetailFragment : NormalFragment() { } if (mGameEntity != null && (mGameEntity!!.getApk().size == 1 || mGameEntity!!.isReservable)) { DetailDownloadUtils.detailInitDownload(detailViewHolder, true) - controlInstallHint() } showBrowserInstallHintIfNeeded() diff --git a/app/src/main/res/layout/detail_download_item.xml b/app/src/main/res/layout/detail_download_item.xml index 4084fb4aa0..a143a5f716 100644 --- a/app/src/main/res/layout/detail_download_item.xml +++ b/app/src/main/res/layout/detail_download_item.xml @@ -80,7 +80,7 @@ android:layout_width="match_parent" android:layout_height="40dp" android:background="@drawable/bg_install_hint" - android:visibility="visible" + android:visibility="gone" tools:visibility="gone">