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 80323f7fb8..88ef4887c6 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -230,7 +230,7 @@ public class Config { } @Nullable - public static GameGuidePopupEntity getGameGuidePopupEntityEntity() { + public static GameGuidePopupEntity getGameGuidePopupEntity() { if (mGameGuidePopupEntity == null) { try { String json = SPUtils.getString(Constants.SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT); 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 37581a95e7..3405395391 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -6,8 +6,6 @@ import com.halo.assistant.HaloApp; public class Constants { - public static final String API_VERSION = "v5d2d0"; - public static final int SEND_NEWS_FEEDBACK = 0x126; public static final int SEND_COMMENT_FEEDBACK = 0x127; 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 de3f098b5d..f232e6948b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -268,6 +268,12 @@ class GameDetailFragment : NormalFragment() { private val dataWatcher = object : DataWatcher() { override fun onDataChanged(downloadEntity: DownloadEntity) { + 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() + } if (mGameEntity != null && mGameEntity!!.getApk().size == 1) { val url = mGameEntity!!.getApk()[0].url if (downloadEntity.url == url) { @@ -303,7 +309,6 @@ class GameDetailFragment : NormalFragment() { ) } } else if (downloadEntity.status == DownloadStatus.done) { - showInstallHint() if (downloadEntity.gameId == mViewModel.game?.id) { hideRecommendView() } @@ -321,8 +326,6 @@ class GameDetailFragment : NormalFragment() { downloadEntity.name ) } - } else if (downloadEntity.status == DownloadStatus.downloading) { - showInstallHint() } } } @@ -551,18 +554,7 @@ class GameDetailFragment : NormalFragment() { if (gameResource.status == Status.SUCCESS) { mViewModel.logHistory(gameResource.data!!) mGameEntity = gameResource.data - val isInstalled = PackageUtils.isInstalledFromAllPackage( - requireContext(), - mGameEntity?.simulator?.apk?.packageName - ) - val status = GameUtils.getDownloadBtnText( - requireContext(), - mGameEntity, - PluginLocation.only_game - ) - if (status == getString(R.string.install) && !isInstalled) { - showInstallHint() - } + controlInstallHint() // 添加启动弹窗的相关信息 if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) && mEntrance.countOccurrences("+") <= 1 @@ -1314,10 +1306,15 @@ class GameDetailFragment : NormalFragment() { if (isShowReserveBtn()) { showReserveBtn(true) val isFirstIn = SPUtils.getBoolean(Constants.SP_GAME_DETAIL_RESERVE_GUIDE, true) + val gameGuidePopupEntity = Config.getGameGuidePopupEntity() if (isFirstIn && mGameEntity?.downloadOffStatus == null) { showReserveGuide(true) SPUtils.setBoolean(Constants.SP_GAME_DETAIL_RESERVE_GUIDE, false) } + if (gameGuidePopupEntity != null) { + showReserveGuide(false) + SPUtils.setBoolean(Constants.SP_GAME_DETAIL_RESERVE_GUIDE, false) + } } else { showReserveBtn(false) } @@ -1467,11 +1464,23 @@ class GameDetailFragment : NormalFragment() { } } + private fun controlInstallHint() { + val status = GameUtils.getDownloadBtnText( + requireContext(), + mGameEntity, + PluginLocation.only_game + ) + if (status == getString(R.string.downloading) || status == getString(R.string.install) || status == getString(R.string.unzipping)) { + showInstallHint() + } + if (status == getString(R.string.download) || status == getString(R.string.expand) || status == getString(R.string.launch) || status == getString(R.string.open)){ + hideInstallHint() + } + } + private fun showInstallHint() { - val gameGuidePopupEntity = Config.getGameGuidePopupEntityEntity() + val gameGuidePopupEntity = Config.getGameGuidePopupEntity() if (SPUtils.getBoolean(Constants.SP_GAME_DETAIL_INSTALL_GUIDE, true) && gameGuidePopupEntity != null) { - showReserveGuide(false) - SPUtils.setBoolean(Constants.SP_GAME_DETAIL_RESERVE_GUIDE, false) mInstallHintTv.text = gameGuidePopupEntity.content mInstallContainer.visibility = View.VISIBLE NewLogUtils.logGuidePopShow(gameGuidePopupEntity.id) @@ -1480,17 +1489,21 @@ class GameDetailFragment : NormalFragment() { NewLogUtils.logGuidePopLinkClick( gameGuidePopupEntity.id, gameGuidePopupEntity.jump.type, - gameGuidePopupEntity.jump.title + gameGuidePopupEntity.jump.linkText ) } mInstallCloseIv.setDebouncedClickListener { - mInstallContainer.visibility = View.GONE + hideInstallHint() 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 = @@ -1615,6 +1628,7 @@ 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 a143a5f716..4084fb4aa0 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="gone" + android:visibility="visible" tools:visibility="gone">