[6.4.4][启自驾指引] 路线切换或订单结束时重置轨迹下载状态展示

This commit is contained in:
renwj
2024-06-14 16:12:42 +08:00
parent cfb2800c7f
commit 756e6d8d0e

View File

@@ -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<String>()
private val leftViewList = CopyOnWriteArrayList<String>()
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)
}
}
}