From 5176766b2957f2d17268b34a7a62c4568980ddd2 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 30 Jun 2023 10:10:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=95=85=E7=8E=A9=E6=B8=B8=E6=88=8F=E6=97=B6?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=8C=89=E9=92=AE=E9=97=AA=E7=83=81=E5=B9=B6?= =?UTF-8?q?=E9=A2=91=E7=B9=81=E5=88=87=E6=8D=A2=E7=8A=B6=E6=80=81=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/DownloadItemUtils.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index 6002299563..455781a0ce 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -3,7 +3,6 @@ package com.gh.common.util import android.content.Context import android.os.Message import android.text.TextUtils -import android.util.Log import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.collection.ArrayMap @@ -265,11 +264,17 @@ object DownloadItemUtils { } } } else if (gameEntity.getApk().size == 1) { - val downloadEntity = if (gameEntity.isVGame()) { - VHelper.getVDownloadEntitySnapshot(gameEntity.id, gameEntity.getUniquePackageName()) - } else { - gameEntity.getEntryMap()[gameEntity.getUniquePlatform()] ?: DownloadManager.getInstance() - .getDownloadEntitySnapshot(gameEntity) + // 优先从下载管理获取 downloadEntity + var downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(gameEntity) + + // 找不到时,若类型为畅玩,尝试从畅玩数据库的快照中获取 downloadEntity。若存在,代表游戏已下载并成功安装 + if (downloadEntity == null && gameEntity.isVGame()) { + downloadEntity = VHelper.getVDownloadEntitySnapshot(gameEntity.id, gameEntity.getUniquePackageName()) + } + + // 还是找不到时,尝试从 gameEntity 里找已绑定的 downloadEntity + if (downloadEntity == null) { + downloadEntity = gameEntity.getEntryMap().getOrDefault(gameEntity.getUniquePlatform(), null) } if (downloadEntity != null) { @@ -947,9 +952,10 @@ object DownloadItemUtils { } } } else { - val downloadEntity = gameEntity.getEntryMap()[gameEntity.getUniquePlatform()] ?: DownloadManager.getInstance() - .getDownloadEntitySnapshot(gameEntity) - + var downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(gameEntity) + if (downloadEntity == null && gameEntity.getApk().size == 1) { + downloadEntity = gameEntity.getEntryMap().getOrDefault(gameEntity.getUniquePlatform(), null) + } if (downloadEntity != null) { val xapkStatus = downloadEntity.meta[XapkInstaller.XAPK_UNZIP_STATUS] if (XapkUnzipStatus.INSTALLING.name == xapkStatus) {// 安装过程中避免重复点击