Merge branch 'dev_robotaxi-d_240401_6.4.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240401_6.4.0

This commit is contained in:
aibingbing
2024-04-29 17:31:34 +08:00
2 changed files with 30 additions and 2 deletions

View File

@@ -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,7 +174,23 @@ class DevaToolsProvider : IDevaToolsProvider {
block.init(it)
block.start()
}
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)
}
}
}
}
override fun checkMonitorDb() {

View File

@@ -185,6 +185,9 @@ object StatusManager {
}
fun getExceptionStatusBeforeLaunchAutopilot(): Int {
if (!hasInit) {
return 0
}
var ret = 0
model.status.value?.second?.filter {
it is IAutopilotPreLaunchStatus
@@ -234,6 +237,10 @@ object StatusManager {
return ret
}
fun hasInit(): Boolean {
return hasInit
}
interface IStatusListener {
fun onStatusChanged(data: List<Status>, hasException: Boolean)
}