From 72f0ce77b9e0dfc0f7c0cddfa35fcc961cc2b661 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 29 Apr 2024 16:10:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[6.4.0][=E5=90=AF=E8=87=AA=E9=A9=BE?= =?UTF-8?q?=E6=8C=87=E5=BC=95]=20=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E6=9C=BA=E5=89=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhjt/mogo_core_function_devatools/DevaToolsProvider.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 07727e48f6..29319fff0b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -169,7 +169,10 @@ class DevaToolsProvider : IDevaToolsProvider { block.init(it) block.start() } - StatusManager.addListener(TAG, statusListener) + mContext?.also { + StatusManager.init(it) + StatusManager.addListener(TAG, statusListener) + } } override fun checkMonitorDb() { From a02f404eea97fe3ded3fd4f189ed1d3f91860d4c Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 29 Apr 2024 16:17:05 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[6.4.0][=E5=90=AF=E8=87=AA=E9=A9=BE?= =?UTF-8?q?=E6=8C=87=E5=BC=95]=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhjt/mogo_core_function_devatools/status/StatusManager.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 0694096680..8869012398 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -185,6 +185,9 @@ object StatusManager { } fun getExceptionStatusBeforeLaunchAutopilot(): Int { + if (!hasInit) { + return 0 + } var ret = 0 model.status.value?.second?.filter { it is IAutopilotPreLaunchStatus From 0ea3ca53840a47dcf7c6f8461f53bdbe9f3a8b67 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 29 Apr 2024 17:11:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[6.4.0][=E5=90=AF=E8=87=AA=E9=A9=BE?= =?UTF-8?q?=E6=8C=87=E5=BC=95]=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 26 ++++++++++++++++--- .../status/StatusManager.kt | 4 +++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 29319fff0b..8e9ff21002 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -39,6 +39,9 @@ import com.tencent.matrix.trace.config.SharePluginInfo import com.tencent.matrix.trace.config.TraceConfig import com.zhjt.mogo_core_function_devatools.apm.* import com.mogo.eagle.core.function.api.upgrade.* +import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope +import com.mogo.eagle.core.utilcode.util.AppStateManager +import com.mogo.eagle.core.utilcode.util.IAppStateListener import com.mogo.weak.network.SdtManager import com.zhjt.mogo_core_function_devatools.adas.PowerOffManager import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager @@ -70,11 +73,13 @@ import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.up import com.zhjt.mogo_core_function_devatools.weaknetwork.DetectResultImpl import com.zhjt.mogo_core_function_devatools.weaknetwork.WeakNetworkStrategy import com.zhjt.service.chain.ChainLog +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import java.lang.ref.WeakReference import java.util.concurrent.ConcurrentHashMap @Route(path = MogoServicePaths.PATH_DEVA_TOOLS) -class DevaToolsProvider : IDevaToolsProvider { +class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { companion object { const val TAG = "DevaToolsProvider" @@ -169,9 +174,22 @@ class DevaToolsProvider : IDevaToolsProvider { block.init(it) block.start() } - mContext?.also { - StatusManager.init(it) - StatusManager.addListener(TAG, statusListener) + AppStateManager.registerAppStateListener(this) + } + + override fun onAppStateChanged(isForeground: Boolean) { + if (isForeground && !StatusManager.hasInit()) { + mContext?.lifeCycleScope?.launch { + while (!StatusManager.hasInit()) { + val activity = AppStateManager.currentActivity() + if (activity == null) { + delay(500) + continue + } + StatusManager.init(activity) + StatusManager.addListener(TAG, statusListener) + } + } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 8869012398..0bf856b1f9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -237,6 +237,10 @@ object StatusManager { return ret } + fun hasInit(): Boolean { + return hasInit + } + interface IStatusListener { fun onStatusChanged(data: List, hasException: Boolean) }