diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 7443e04777..2ddbb20baa 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -349,6 +349,8 @@ public class PackageUtils { /* * 根据包名,判断是否已安装该游戏 + * + * 注意:目测只对能启动的app有效,对一些没有做面图标的无效 */ public static boolean isInstalled(Context context, String packageName) { Intent intent = context.getApplicationContext().getPackageManager().getLaunchIntentForPackage(packageName); diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt index b8ef646402..b3116af942 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt @@ -16,6 +16,7 @@ import com.gh.gamecenter.databinding.DownloadDialogItemBinding import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameCollectionEntity import com.gh.gamecenter.entity.GameEntity +import com.gh.gamecenter.manager.PackagesManager import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity import com.lightgame.download.DownloadStatus @@ -105,7 +106,8 @@ class DownloadDialogItemViewHolder(val binding: DownloadDialogItemBinding) : Bas binding.status.text = "可更新" binding.downloadStatusIcon.setImageResource(R.drawable.download_dialog_collection_status_update) itemView.setTag(DownloadDialogAdapter.ITEM_TAG_KEY, DownloadDialogItemStatus.UPDATE) - } else if (PackageUtils.getGhId(apkEntity.packageName) == gameEntity.id) { + } else if (PackageUtils.getGhId(apkEntity.packageName) == gameEntity.id || + PackagesManager.isInstalled(apkEntity.packageName) && Config.getSettings()?.gameDownloadBlackList?.contains(apkEntity.packageName) == true) { binding.downloadStatusIcon.visibility = View.GONE binding.status.visibility = View.VISIBLE binding.root.setBackgroundResource(R.drawable.download_dialog_installed_background) @@ -219,7 +221,7 @@ class DownloadDialogItemViewHolder(val binding: DownloadDialogItemBinding) : Bas } DownloadDialogItemStatus.PLUGGABLE -> { createDownloadTask(it.context, apkEntity, gameEntity, "插件化", entrance, location) - + mtaValue = gameEntity.name + "_" + apkEntity.getPlatformName() + "_插件化" } DownloadDialogItemStatus.UPDATE -> { diff --git a/app/src/main/java/com/gh/download/dialog/DownloadViewModel.kt b/app/src/main/java/com/gh/download/dialog/DownloadViewModel.kt index 4fb847d931..1a271d79e1 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadViewModel.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import com.gh.common.constant.Config import com.gh.common.util.PackageUtils import com.gh.download.DownloadManager import com.gh.gamecenter.entity.ApkEntity @@ -61,12 +62,14 @@ class DownloadViewModel(application: Application, val gameEntity: GameEntity) : apk.apkCollection?.saveApkEntity?.let { for (entity in it) { isInstalled = PackagesManager.isInstalled(entity.packageName) + && Config.getSettings()?.gameDownloadBlackList?.contains(entity.packageName) != true if (isInstalled) break } } isInstalled } else { PackagesManager.isInstalled(apk.packageName) + && Config.getSettings()?.gameDownloadBlackList?.contains(apk.packageName) != true } if (installed) { mInstalledApkList.add(apk)