From ac02ea88b92372ddf140e81af071c2b4edb3abe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=90=9B=E9=99=B6?= Date: Thu, 9 Jan 2025 15:23:53 +0800 Subject: [PATCH] Merge branch 'fix/GHZSCY-7277' into 'dev' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复错误的下载错误提示 https://jira.shanqu.cc/browse/GHZSCY-7277 See merge request halo/android/assistant-android!2025 (cherry picked from commit f8a26ece01926dd8f6bda981590a25fdc568ddc9) 54ee3ea3 fix: 游戏下载异常提示 https://jira.shanqu.cc/browse/GHZSCY-7277 Co-authored-by: 陈君陶 --- app/src/main/java/com/gh/common/util/DownloadObserver.kt | 9 +++++++-- app/src/main/java/com/gh/ndownload/NDownloadBridge.kt | 2 +- ndownload | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) 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 a5d07c6112..300a50a294 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -53,6 +53,7 @@ object DownloadObserver { private const val CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED = "CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED" private val mRetryableHashMap = hashMapOf() + private val mRetryableProgressMap = hashMapOf() /** * 当下载任务是 预约上线提醒 触发的,则所有弹窗均不显示 @@ -146,7 +147,8 @@ object DownloadObserver { || DownloadStatus.timeout == status ) { if (mRetryableHashMap[downloadEntity.url] == true - && NetworkUtils.isWifiConnected(HaloApp.getInstance().application) + && (NetworkUtils.isWifiConnected(HaloApp.getInstance().application) + || NDownloadBridge.isDownloadViaTrafficAllowed(downloadEntity)) ) { downloadManager.resumeDownload(downloadEntity.url) mRetryableHashMap[downloadEntity.url] = false @@ -257,6 +259,7 @@ object DownloadObserver { } mRetryableHashMap.remove(downloadEntity.url) + mRetryableProgressMap.remove(downloadEntity.url) EventBus.getDefault().post(EBDownloadStatus("done", "", "", "", downloadEntity.packageName, "")) } @@ -264,7 +267,9 @@ object DownloadObserver { DownloadNotificationHelper.addOrUpdateDownloadNotification(downloadEntity) // 如果已下载大小发生变化,表示成功恢复下载,则重置重试标记 - if (status == DownloadStatus.downloading) { + if (status == DownloadStatus.downloading + && downloadEntity.progress != mRetryableProgressMap[downloadEntity.url]) { + mRetryableProgressMap[downloadEntity.url] = downloadEntity.progress mRetryableHashMap[downloadEntity.url] = true } } diff --git a/app/src/main/java/com/gh/ndownload/NDownloadBridge.kt b/app/src/main/java/com/gh/ndownload/NDownloadBridge.kt index 484051796d..801db55f85 100644 --- a/app/src/main/java/com/gh/ndownload/NDownloadBridge.kt +++ b/app/src/main/java/com/gh/ndownload/NDownloadBridge.kt @@ -416,7 +416,7 @@ object NDownloadBridge : InnerDownloadListener, IErrorRetryHandler { }, GlobalDownloadConfig.ERROR_RETRY_INTERVAL) } - private fun isDownloadViaTrafficAllowed(downloadEntity: DownloadEntity?): Boolean { + fun isDownloadViaTrafficAllowed(downloadEntity: DownloadEntity?): Boolean { val mNetworkMobileStatus = "2G3G4G5G" val networkStatus: String? = downloadEntity?.meta?.get(DownloadEntity.NETWORK_STATUS_KEY) Utils.log("download network status$networkStatus") diff --git a/ndownload b/ndownload index 91a183a48b..02ad0aa911 160000 --- a/ndownload +++ b/ndownload @@ -1 +1 @@ -Subproject commit 91a183a48b9fc34fc9dc7b05e1a3046366417d74 +Subproject commit 02ad0aa911b20303b2d27a67b25461e223e37c79