diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt index 301c0df123..dcab8f38b2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt @@ -2,15 +2,22 @@ package com.mogo.och.common.module.biz.provider import android.content.Context import android.view.View +import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarUnmannedView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.CockpitType abstract class CommonServiceImpl : CommonService { - var statusBarView: View?= null + var statusBarView: View? = null override fun getStatusBarView(context: Context): View { if (statusBarView == null) { - statusBarView = StatusBarView(context) + statusBarView = if (AppIdentityModeUtils.getCockpitType() == CockpitType.UNMANNED) { + StatusBarUnmannedView(context) + } else { + StatusBarView(context) + } } return statusBarView!! } diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index 953494b8f6..caff3f2156 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -17,8 +17,10 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.eagle.core.function.hmi.ui.setting.SopView import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView +import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarUnmannedView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.CockpitType import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.util.DeviceUtils @@ -201,7 +203,12 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { removeStatusBar() } } - statusBarView = statusBar ?: StatusBarView(it) + statusBarView = statusBar + ?: if (AppIdentityModeUtils.getCockpitType() == CockpitType.UNMANNED) { + StatusBarUnmannedView(it) + } else { + StatusBarView(it) + } statusBarView.tag = "status_bar" val statusBarLP = FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 8dc3372472..9e31c3ea01 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -69,12 +69,14 @@ import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog import com.mogo.eagle.core.function.hmi.ui.widget.ColdStartAgainWindow import com.mogo.eagle.core.function.hmi.ui.widget.HDMapVisualAngleAdjustLayout +import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarUnmannedView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.mogo.eagle.core.utilcode.kotlin.scope import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.CockpitType import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.util.AppStateManager @@ -130,7 +132,12 @@ class MoGoHmiProvider : IMoGoHmiProvider { } override fun setStatusBarDarkOrLight(light: Boolean) { - CallerHmiViewControlListenerManager.setStatusBarDarkOrLight(StatusBarView.TAG, light) + val tag = if (AppIdentityModeUtils.getCockpitType() == CockpitType.UNMANNED) { + StatusBarUnmannedView.TAG + } else { + StatusBarView.TAG + } + CallerHmiViewControlListenerManager.setStatusBarDarkOrLight(tag, light) } override fun updateStatusBarRightView(insert: Boolean, tag: String, viewGroup: ViewGroup) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarUnmannedView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarUnmannedView.kt new file mode 100644 index 0000000000..03efca49df --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarUnmannedView.kt @@ -0,0 +1,67 @@ +package com.mogo.eagle.core.function.hmi.ui.widget + +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.FrameLayout +import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener +import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +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.util.ThreadUtils +import kotlinx.android.synthetic.main.view_status_bar_unmanned.view.viewTextClock + +class StatusBarUnmannedView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : FrameLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener { + + companion object { + const val TAG = "StatusBarUnmannedView" + } + + init { + LayoutInflater.from(context).inflate(R.layout.view_status_bar_unmanned, this, true) + background = ColorDrawable(Color.parseColor("#A6000000")) // 黑色的65% + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + //添加view控制 + CallerHmiViewControlListenerManager.addListener(StatusBarView.TAG, this) + // 添加换肤监听 + CallerSkinModeListenerManager.addListener(TAG, this) + } + + override fun onSkinModeChange(skinMode: Int) { + ThreadUtils.runOnUiThread { + when (skinMode) { + 0 -> setStatusBarDarkOrLight(false) + 1 -> setStatusBarDarkOrLight(true) + } + } + } + + + override fun setStatusBarDarkOrLight(light: Boolean) = if (light) { + setTextColor(resources.getColor(R.color.color_2C2E30)) + } else { + setTextColor(resources.getColor(R.color.color_FFFFFF)) + } + + + private fun setTextColor(color: Int) { + viewTextClock.setTextColor(color) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerHmiViewControlListenerManager.removeListener(StatusBarView.TAG) + CallerSkinModeListenerManager.removeListener(TAG) + } +} + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar_unmanned.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar_unmanned.xml new file mode 100644 index 0000000000..977aa60278 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar_unmanned.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file