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 df0a033bb4..31a0781155 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 @@ -107,7 +107,7 @@ class DevaToolsProvider : IDevaToolsProvider { StatusManager.show(container) } - override fun hideStatusBar(container: ViewGroup) { - StatusManager.hide(container) + override fun hideStatusBar() { + StatusManager.hide() } } \ No newline at end of file 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 eef5162c46..42d8590c53 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 @@ -32,6 +32,7 @@ import com.zhjt.mogo_core_function_devatools.status.ui.StatusView import kotlinx.coroutines.* import kotlinx.coroutines.flow.* import mogo_msg.MogoReportMsg +import java.lang.ref.* import java.util.concurrent.* @@ -43,6 +44,7 @@ object StatusManager { private var timer: Job? = null private var hasInit = false private val listeners by lazy { CopyOnWriteArrayList() } + private var container: WeakReference? = null private val listener = object : IMoGoAutopilotStatusListener { override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { @@ -152,15 +154,15 @@ object StatusManager { } return } + this.container = WeakReference(container) val child = StatusView(model, container.context) container.addView(child, ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)) } - fun hide(container: ViewGroup) { - container.visibility = View.GONE + fun hide() { + container?.get()?.takeIf { it.visibility == View.VISIBLE }?.run { visibility = View.GONE } } - private fun onDestroy(ctx: Context) { hasInit = false CallerAutoPilotStatusListenerManager.removeListener(TAG) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 901e32a7bb..9b982f2c93 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1214,7 +1214,7 @@ import java.util.* } override fun showSmallFragment() { - CallerDevaToolsManager.hideStatusBar(statusBarContainer) + CallerDevaToolsManager.hideStatusBar() // 加载全览模式图层 val fragmentOverview = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_OVERVIEW) .navigation() as BaseFragment diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index e5328f0dec..b5f425ca00 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -112,5 +112,5 @@ interface IDevaToolsProvider : IProvider { /** * 隐藏状态栏 */ - fun hideStatusBar(container: ViewGroup) + fun hideStatusBar() } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 71cc263d5c..79041199d0 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -159,9 +159,9 @@ object CallerDevaToolsManager { /** * 隐藏状态栏 */ - fun hideStatusBar(container: ViewGroup) { + fun hideStatusBar() { if (!AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - devaToolsProviderApi?.hideStatusBar(container) + devaToolsProviderApi?.hideStatusBar() } } } \ No newline at end of file