From 8dfde8ddd0e3f99863d0ff9c249907ce386d0214 Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 4 Feb 2021 18:17:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=BE=A9=E5=90=8C=E5=8C=85=E5=90=8D?= =?UTF-8?q?=E9=81=8A=E6=88=B2=E5=AE=89=E8=A3=9D=E5=AE=8C=E6=88=90=E6=99=82?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E8=AA=A4=E5=88=AA=E9=8C=AF=E8=AA=A4=E9=81=8A?= =?UTF-8?q?=E6=88=B2=E7=9A=84=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/constant/Constants.java | 2 ++ .../com/gh/common/util/PackageInstaller.kt | 2 ++ .../java/com/gh/download/PackageObserver.kt | 18 +++++++++++++++++- .../java/com/gh/gamecenter/MainActivity.java | 8 +++++++- 4 files changed, 28 insertions(+), 2 deletions(-) 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 0900d45754..fede667b90 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -68,6 +68,8 @@ public class Constants { public static final String SP_IMEI = "imei"; public static final String SP_ANDROID_ID = "android_id"; + + public static final String LAST_INSTALL_GAME = "last_install_game"; //引导设置 “通知管理” 引导弹窗 public static final String SP_SHOWED_NOTIFICATION_LOGIN = "show_notification_login_hint"; diff --git a/app/src/main/java/com/gh/common/util/PackageInstaller.kt b/app/src/main/java/com/gh/common/util/PackageInstaller.kt index 55f8605989..0e1c4b8ea4 100644 --- a/app/src/main/java/com/gh/common/util/PackageInstaller.kt +++ b/app/src/main/java/com/gh/common/util/PackageInstaller.kt @@ -71,6 +71,8 @@ object PackageInstaller { fun install(context: Context, pkgPath: String) { try { if (PackageUtils.isCanLaunchSetup(context, pkgPath)) { + HaloApp.put(Constants.LAST_INSTALL_GAME, pkgPath) + val installIntent = getInstallIntent(context, pkgPath) context.startActivity(installIntent) } else { diff --git a/app/src/main/java/com/gh/download/PackageObserver.kt b/app/src/main/java/com/gh/download/PackageObserver.kt index c91d9f887c..d76589f915 100644 --- a/app/src/main/java/com/gh/download/PackageObserver.kt +++ b/app/src/main/java/com/gh/download/PackageObserver.kt @@ -3,6 +3,7 @@ package com.gh.download import android.annotation.SuppressLint import android.preference.PreferenceManager import android.text.TextUtils +import com.gh.common.constant.Constants import com.gh.common.loghub.LoghubUtils import com.gh.common.runOnIoThread import com.gh.common.util.* @@ -40,21 +41,36 @@ object PackageObserver { var mDownloadEntity: DownloadEntity? = null val sp = PreferenceManager.getDefaultSharedPreferences(application) + var approximateGameId = "" // 模糊的 gameId + var foundMatchedGame = false // 是否找到準確的遊戲 (有可能出現同包名同版本的情況) + for (downloadEntity in DownloadManager.getInstance(application).allDownloadEntity) { if (packageName == downloadEntity.packageName) { mDownloadEntity = downloadEntity gameId = mDownloadEntity.gameId if (TextUtils.isEmpty(busFour.versionName)) { // 没有版本号的事件直接选用第一个找到的 downloadEntity + foundMatchedGame = true break } else { + // 直接選擇安裝位置一樣的 + if (downloadEntity.path == HaloApp.get(Constants.LAST_INSTALL_GAME, false)) { + foundMatchedGame = true + break + } + // 有版本号的事件直接尽量找到版本一致的 downloadEntity if (versionName == downloadEntity.versionName) { - break + approximateGameId = gameId } } } } + + if (!foundMatchedGame && approximateGameId.isNotEmpty()) { + gameId = approximateGameId + } + if ("安装" == busFour.type) { mPackageViewModel.addInstalledGame(packageName) diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index ba9728f1bb..ee39224199 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -523,7 +523,13 @@ public class MainActivity extends BaseActivity { @Override public Boolean invoke(Integer code) { if (code == 404001) { - toast("抱歉,暂未找到相关内容"); + if (showAd) { + AppExecutor.getUiExecutor().executeWithDelay(() -> { + toast("抱歉,暂未找到相关内容"); + }, 1000); + } else { + toast("抱歉,暂未找到相关内容"); + } LogUtils.uploadPackageSkip("external_jump", "进入游戏库", "", ""); EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, MainWrapperFragment.INDEX_GAME)); return true;