diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 4140b7dc4e..76d8cc3c6f 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -444,7 +444,7 @@ public class BindingAdapters { boolean isInstalled = PackageUtils.isInstalledFromAllPackage(v.getContext(), gameEntity.getSimulator().getApk().getPackageName()); if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) { SimulatorDownloadManager.getInstance().showDownloadDialog(v.getContext(), gameEntity.getSimulator(), - SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName()); + SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(), null); return; } } diff --git a/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt b/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt index acba7c78ae..7ff7d39acd 100644 --- a/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt +++ b/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt @@ -90,10 +90,10 @@ class SimulatorDownloadManager private constructor() { } fun showDownloadDialog(context: Context, simulator: SimulatorEntity?, location: SimulatorLocation) { - showDownloadDialog(context, simulator, location, "", "") + showDownloadDialog(context, simulator, location, "", "", null) } - fun showDownloadDialog(context: Context, simulator: SimulatorEntity?, location: SimulatorLocation, gameId: String = "", gameName: String = "") { + fun showDownloadDialog(context: Context, simulator: SimulatorEntity?, location: SimulatorLocation, gameId: String = "", gameName: String = "", cancelCallback: (() -> Unit)? = null) { this.simulatorLocation = location this.simulator = simulator this.gameId = gameId @@ -117,7 +117,10 @@ class SimulatorDownloadManager private constructor() { logShowEvent = true ) DialogUtils.showNewAlertDialog(context, title, message, negativeText, positiveText, trackableEntity, { - MtaHelper.onEvent(trackableEntity.event, trackableEntity.key, "点击下次再说") + if (shouldShowUpdate && isInstalled){ + cancelCallback?.invoke() + MtaHelper.onEvent(trackableEntity.event, trackableEntity.key, "点击下次再说") + } }, { showDownloadingDialog(context, simulator) MtaHelper.onEvent(trackableEntity.event, trackableEntity.key, if (shouldShowUpdate && isInstalled) "点击更新" else "点击下载") diff --git a/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt b/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt index 6cf58d5226..3a3afcc87c 100644 --- a/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt +++ b/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt @@ -86,10 +86,15 @@ object SimulatorGameManager { if (shouldShowUpdate) { SimulatorDownloadManager.getInstance().showDownloadDialog(AppManager.getInstance().recentActiveActivity, gameEntity.simulator, SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.id, gameEntity.name - ?: "") - return + ?: "") { + jumpToSimulator(downloadEntity, gameEntity) + } + } else { + jumpToSimulator(downloadEntity, gameEntity) } + } + private fun jumpToSimulator(downloadEntity: DownloadEntity, gameEntity: GameEntity) { val intent = Intent() intent.data = Uri.fromFile(File(downloadEntity.path)) if (gameEntity.simulatorType == "FBA") { diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index 8f78e5db8b..bcb08aabf5 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -592,7 +592,7 @@ public class DownloadItemUtils { boolean isInstalled = PackageUtils.isInstalledFromAllPackage(context, gameEntity.getSimulator().getApk().getPackageName()); if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) { SimulatorDownloadManager.getInstance().showDownloadDialog(context, gameEntity.getSimulator(), - SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName()); + SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(),null); return; } } diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index 144c48c61c..a954f36a63 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -142,7 +142,7 @@ object DownloadObserver { if (!isInstalled) { SimulatorDownloadManager.getInstance().showDownloadDialog(AppManager.getInstance().currentActivity(), gameEntity.simulator, SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.id, gameEntity.name - ?: "") + ?: "", null) } SimulatorGameManager.recordDownloadSimulatorGames(gameEntity.id) SimulatorGameManager.postPlayedGame(gameEntity.id, downloadEntity.packageName) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index 54b791649e..31091abb59 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -226,7 +226,7 @@ public class DetailViewHolder { boolean isInstalled = PackageUtils.isInstalledFromAllPackage(mViewHolder.context, mGameEntity.getSimulator().getApk().getPackageName()); if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(mGameEntity) && !isInstalled) { SimulatorDownloadManager.getInstance().showDownloadDialog(mViewHolder.context, mGameEntity.getSimulator(), - SimulatorDownloadManager.SimulatorLocation.LAUNCH, mGameEntity.getId(), mGameEntity.getName()); + SimulatorDownloadManager.SimulatorLocation.LAUNCH, mGameEntity.getId(), mGameEntity.getName(), null); return; } }