diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt index 660526fd19..bcafa4b272 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt @@ -55,6 +55,12 @@ class UpgradeAppNetWorkManager private constructor() { fun getAppUpgradeInfo(context: Context?, mac: String, screenType: String) { upgradeJob?.safeCancel() scope.launch { + if (provider?.isDownloading() == true) { + withContext(Dispatchers.Main) { + ToastUtils.showShort("正在下载最新版本,不要重复下载...") + } + return@launch + } val sn = SharedPrefsMgr.getInstance().sn val macAddress = mac //"48:b0:2d:4d:31:7f" val type = screenType //"10" diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt index c0eaca9ef1..af3d343a5c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt @@ -18,10 +18,13 @@ import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.vo.UpgradeRecor import com.zhjt.service.chain.* import java.util.TreeMap import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicBoolean @Route(path = MogoServicePaths.PATH_UPGRADE_TYPE_API) class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { + private val isDownloading by lazy { AtomicBoolean(false) } + override fun init(context: Context?) {} override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?, isSupportPatch: Boolean) { @@ -80,6 +83,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { onUpgradeRecordLinkLog(mapOf("upgrade_download_start" to record)) } catch (t: Throwable) { t.printStackTrace() + } finally { + isDownloading.set(true) } } @@ -100,6 +105,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { onUpgradeRecordLinkLog(mapOf("upgrade_download_failed" to record)) } catch (t: Throwable) { t.printStackTrace() + } finally { + isDownloading.set(false) } } @@ -110,6 +117,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { onUpgradeRecordLinkLog(mapOf("upgrade_download_success" to record)) } catch (t: Throwable) { t.printStackTrace() + } finally { + isDownloading.set(false) } } @@ -297,6 +306,10 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { } == null } + override fun isDownloading(): Boolean { + return isDownloading.get() + } + private fun getType(type: Int): Type = if (type == 0) FULL else PATCH diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt index 3eea1a10d3..79230b7a14 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt @@ -49,4 +49,6 @@ interface IMoGoUpgradeProvider: IProvider { suspend fun hasUpgradeRecord(): Boolean suspend fun isNeedGoPatchUpgrade(): Boolean + + fun isDownloading(): Boolean } \ No newline at end of file