From b8903e78143e91a31e7a3ee03b9ea4e2850e1254 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 26 Aug 2020 18:10:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9B=B4=E6=96=B0=E4=BC=98?= =?UTF-8?q?=E5=8C=960826=E6=B5=8B=E8=AF=95=20https://gitlab.ghzs.com/pm/ha?= =?UTF-8?q?lo-app-issues/-/issues/946?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/Extensions.kt | 4 ++++ .../java/com/gh/download/DownloadManager.java | 2 +- .../download/GameDownloadFragment.java | 6 +++++ .../gh/gamecenter/manager/UpdateManager.java | 23 +++++++++++-------- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 7b75ca9390..13ac076f8f 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -652,6 +652,10 @@ fun DownloadEntity.getMetaExtra(key: String): String { return meta[key] ?: "" } +fun DownloadEntity.isSilentUpdate(): Boolean { + return Constants.SILENT_UPDATE == getMetaExtra(Constants.EXTRA_DOWNLOAD_TYPE) +} + /** * Process related */ diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 3aea5f2d97..eb80e2668d 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -713,7 +713,7 @@ public class DownloadManager implements DownloadStatusListener { public void checkRetryDownload() { if (!NetworkUtils.isWifiConnected(mContext)) return; - for (DownloadEntity downloadEntity : DownloadManager.getInstance(mContext).getAllDownloadEntity()) { + for (DownloadEntity downloadEntity : DownloadManager.getInstance(mContext).getAllDownloadEntityExcludeSilentUpdate()) { if (DownloadStatus.neterror.equals(downloadEntity.getStatus()) || DownloadStatus.timeout.equals(downloadEntity.getStatus()) || DownloadStatus.subscribe.equals(downloadEntity.getStatus())) { diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index 36ec4ff076..324cd2c851 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.EntranceUtils; +import com.gh.common.util.ExtensionsKt; import com.gh.common.util.NetworkUtils; import com.gh.common.util.PackageUtils; import com.gh.common.view.RecyclerViewExtended; @@ -173,6 +174,11 @@ public class GameDownloadFragment extends BaseFragment implements View.OnClickLi if (status.equals(DownloadStatus.downloading) || status.equals(DownloadStatus.waiting) || status.equals(DownloadStatus.subscribe)) { + // 静默更新任务不需要添加 + if (ExtensionsKt.isSilentUpdate(downloadEntity)) { + return; + } + if (adapter.getDownloadingList().isEmpty()) { adapter.getDownloadingList().add(0, downloadEntity); adapter.initLocationMap(); diff --git a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java index f2300e7c93..3ce5c489f2 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java @@ -137,22 +137,25 @@ public class UpdateManager { } else if (DownloadStatus.hijack.equals(downloadEntity.getStatus())) { Utils.toast(mContext, "网络劫持,请稍后重试"); } - } else if (updateDialog != null && updateDialog.isShowing()) { + } else { if (downloadEntity.getSize() != lastUpdateFileSize) { lastUpdateFileSize = downloadEntity.getSize(); SPUtils.setLong(Constants.LAST_GHZS_UPDATE_FILE_SIZE, lastUpdateFileSize); } - if (DownloadStatus.done.equals(downloadEntity.getStatus())) { - updateUpdateDialogView(true); - } - } else { - if (mContext instanceof MainActivity - && AppManager.getInstance().getRecentActiveActivity() == mContext) { + if (updateDialog != null && updateDialog.isShowing()) { if (DownloadStatus.done.equals(downloadEntity.getStatus())) { - showUpdateDialog(currentUpdateMd5); + updateUpdateDialogView(true); + } + } else { + if (mContext instanceof MainActivity + && AppManager.getInstance().getRecentActiveActivity() == mContext) { + if (DownloadStatus.done.equals(downloadEntity.getStatus())) { + showUpdateDialog(currentUpdateMd5); + } } } + } } } @@ -235,7 +238,9 @@ public class UpdateManager { if (appEntity.isForce() || isUpdateFileDownloaded(response)) { showUpdateDialog(response); } else { - createUpdate(response, true); + if (NetworkUtils.isWifiConnected(mContext)) { + createUpdate(response, true); + } } if (handler != null) { Message message = new Message();