From 756e6d8d0e8ac4b2f161131e359d1c6765f15688 Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 14 Jun 2024 16:12:42 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.4][=E5=90=AF=E8=87=AA=E9=A9=BE=E6=8C=87?= =?UTF-8?q?=E5=BC=95]=20=E8=B7=AF=E7=BA=BF=E5=88=87=E6=8D=A2=E6=88=96?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=BB=93=E6=9D=9F=E6=97=B6=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E4=B8=8B=E8=BD=BD=E7=8A=B6=E6=80=81=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/widget/StatusBarView.kt | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt index f0cef47ebd..ee700888f0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt @@ -9,16 +9,19 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.content.ContextCompat import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.kotlin.scope import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -27,12 +30,13 @@ import kotlinx.coroutines.Runnable import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.atomic.AtomicLong class StatusBarView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener { +) : LinearLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener, IMoGoAutopilotStatusListener { companion object { const val TAG = "StatusBarView" @@ -46,6 +50,8 @@ class StatusBarView @JvmOverloads constructor( private val rightViewList = CopyOnWriteArrayList() private val leftViewList = CopyOnWriteArrayList() + private val lineId = AtomicLong(Long.MIN_VALUE) + override fun onAttachedToWindow() { super.onAttachedToWindow() post { @@ -60,8 +66,8 @@ class StatusBarView @JvmOverloads constructor( CallerSkinModeListenerManager.addListener(TAG, this) //将状态窗口中的状态移到状态栏上 CallerDevaToolsManager.showStatusBar(context, status_container) - if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + CallerAutoPilotStatusListenerManager.addListener(TAG, this) updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context)) updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context)) routeDownloadStatusRoot?.visibility = View.GONE @@ -101,6 +107,20 @@ class StatusBarView @JvmOverloads constructor( } } + override fun onAutopilotRouteLineId(lineId: Long) { + super.onAutopilotRouteLineId(lineId) + if (lineId != this.lineId.get()) { + this.lineId.set(lineId) + Logger.d(TAG, "--- onAutopilotRouteLineId ---: $lineId") + routeDownloadStatusRoot?.scope?.launch { + Logger.d(TAG, "--- onAutopilotRouteLineId 1 ---: $lineId") + if ((routeDownloadStatusRoot?.visibility == View.VISIBLE) && AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + routeDownloadStatusRoot?.visibility = View.GONE + } + } + } + } + override fun setStatusBarDarkOrLight(light: Boolean) = if (light) { setTextColor(resources.getColor(R.color.color_2C2E30)) } else { @@ -158,6 +178,9 @@ class StatusBarView @JvmOverloads constructor( CallerSkinModeListenerManager.removeListener(TAG) CallerDevaToolsManager.hideStatusBar() CallerDevaToolsManager.unRegisterRouteDownloadListener(TAG) + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + CallerAutoPilotStatusListenerManager.removeListener(TAG) + } } }