diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
index 1b5d8637a1..a8aa3e9d36 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
@@ -687,11 +687,6 @@ internal class DebugSettingView @JvmOverloads constructor(
// 演示模式
tbIsDemoMode.setOnCheckedChangeListener { _, _ ->
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
- CallerHmiManager.updateStatusBarLeftView(
- FunctionBuildConfig.isDemoMode,
- "demoMode",
- DemoModeView(context)
- )
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
if (!FunctionBuildConfig.isDemoMode) {
//关闭美化模式时,通知工控机
@@ -1704,6 +1699,12 @@ internal class DebugSettingView @JvmOverloads constructor(
tbIsDemoMode?.text = "开启美化模式"
}
+ if(FunctionBuildConfig.isRainMode){
+ tbIsRainMode?.text = "关闭雨天模式"
+ } else {
+ tbIsRainMode?.text = "开启雨天模式"
+ }
+
obuConnectStatusTv.text = Html.fromHtml(
"OBU连接状态:${
if (AppConfigInfo.isConnectObu) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
index 7c7509f19e..22b40643ab 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
@@ -12,6 +12,8 @@ import com.mogo.eagle.core.data.multidisplay.TelematicConstant
import com.mogo.eagle.core.data.obu.MogoObuConst
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener
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.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
@@ -34,7 +36,8 @@ internal class SOPSettingView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
-) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoDevaToolsFuncConfigListener {
+) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoDevaToolsFuncConfigListener,
+ IViewControlListener {
companion object {
const val TAG = "SOPSettingView"
@@ -49,14 +52,14 @@ internal class SOPSettingView @JvmOverloads constructor(
sopLayout.setOnClickListener { }
tbObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
tbObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("绕障类功能开关",isChecked)
+ hmiAction("SOP 绕障类功能开关",isChecked)
CallerAutoPilotControlManager.sendDetouring(isChecked)
FunctionBuildConfig.isDetouring = isChecked
}
tbMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
tbMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("危险障碍物颜色标记开关",isChecked)
+ hmiAction("SOP 危险障碍物颜色标记开关",isChecked)
FunctionBuildConfig.isPNCWarning = isChecked
}
@@ -66,14 +69,14 @@ internal class SOPSettingView @JvmOverloads constructor(
tbRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
tbRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("引导线动态效果",isChecked)
+ hmiAction("SOP 引导线动态效果",isChecked)
HmiBuildConfig.isShowRouteStrategy = isChecked
}
//默认开启
tbObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
tbObuWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("obu弱势交通控制, ",isChecked)
+ hmiAction("SOP obu弱势交通控制, ",isChecked)
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
}
@@ -82,7 +85,7 @@ internal class SOPSettingView @JvmOverloads constructor(
*/
tbCloudWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowCloudWeaknessTrafficView
tbCloudWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("云端弱势交通控制, ",isChecked)
+ hmiAction("SOP 云端弱势交通控制, ",isChecked)
HmiBuildConfig.isShowCloudWeaknessTrafficView = isChecked
}
@@ -91,7 +94,7 @@ internal class SOPSettingView @JvmOverloads constructor(
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
- hmiAction("V2N场景进PNC, ",isChecked)
+ hmiAction("SOP V2N场景进PNC, ",isChecked)
CallerAutoPilotControlManager.sendV2nToPncCmd(isChecked)
FunctionBuildConfig.isV2NPnc = isChecked
}
@@ -101,7 +104,7 @@ internal class SOPSettingView @JvmOverloads constructor(
*/
tbObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
tbObuV2vView.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("obuV2V开关, ",isChecked)
+ hmiAction("SOP obuV2V开关, ",isChecked)
HmiBuildConfig.isShowObuV2vView = isChecked
}
@@ -110,7 +113,7 @@ internal class SOPSettingView @JvmOverloads constructor(
*/
tbObuV2iView.isChecked = HmiBuildConfig.isShowObuV2iView
tbObuV2iView.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("obuV2i开关, ",isChecked)
+ hmiAction("SOP obuV2i开关, ",isChecked)
HmiBuildConfig.isShowObuV2iView = isChecked
}
@@ -119,7 +122,7 @@ internal class SOPSettingView @JvmOverloads constructor(
*/
tbRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
tbRunRedLightSop.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("obu闯红灯预警, ",isChecked)
+ hmiAction("SOP obu闯红灯预警, ",isChecked)
HmiBuildConfig.isShowRunRedLightView = isChecked
if (HmiBuildConfig.isShowRunRedLightView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
@@ -133,7 +136,7 @@ internal class SOPSettingView @JvmOverloads constructor(
*/
tbGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
tbGreenWaveSop.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("obu绿波通行, ",isChecked)
+ hmiAction("SOP obu绿波通行, ",isChecked)
HmiBuildConfig.isShowGreenWaveView = isChecked
if (HmiBuildConfig.isShowGreenWaveView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
@@ -144,7 +147,7 @@ internal class SOPSettingView @JvmOverloads constructor(
tbTrafficLight.isChecked = HmiBuildConfig.isShowTrafficLightView
tbTrafficLight.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("红绿灯标识开关, ",isChecked)
+ hmiAction("SOP 红绿灯标识开关, ",isChecked)
if (!isChecked) {
HmiBuildConfig.isShowTrafficLightView = false
} else {
@@ -155,7 +158,7 @@ internal class SOPSettingView @JvmOverloads constructor(
tbSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
tbSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("限速标识开关, ",isChecked)
+ hmiAction("SOP 限速标识开关, ",isChecked)
if (isChecked) {
HmiBuildConfig.isShowLimitingVelocityView = true
} else {
@@ -170,10 +173,10 @@ internal class SOPSettingView @JvmOverloads constructor(
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
- hmiAction("演示模式开关, ",!FunctionBuildConfig.isDemoMode)
+ hmiAction("SOP 演示模式开关, ",!FunctionBuildConfig.isDemoMode)
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
- CallerHmiManager.updateStatusBarLeftView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(context))
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
+ CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_DEMO, FunctionBuildConfig.isDemoMode)
if (!FunctionBuildConfig.isDemoMode) {
//关闭美化模式时,通知工控机
CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
@@ -190,8 +193,9 @@ internal class SOPSettingView @JvmOverloads constructor(
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
- hmiAction("雨天模式开关, ",isChecked)
+ hmiAction("SOP 雨天模式开关, ",isChecked)
CallerAutoPilotControlManager.setRainMode(isChecked)
+ CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_RAIN, isChecked)
FunctionBuildConfig.isRainMode = isChecked
}
//雨天模式按钮只在司机屏生效,乘客屏不显示
@@ -201,7 +205,7 @@ internal class SOPSettingView @JvmOverloads constructor(
tbObu.isChecked = CallerObuApiManager.isConnected()
tbObu.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("OBU控制总开关, ",isChecked)
+ hmiAction("SOP OBU控制总开关, ",isChecked)
if (isChecked) {
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
} else {
@@ -213,13 +217,13 @@ internal class SOPSettingView @JvmOverloads constructor(
tbIPCReport.isChecked = FunctionBuildConfig.isReportWarning
tbIPCReport.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("是否开启异常上报, ",isChecked)
+ hmiAction("SOP 是否开启异常上报, ",isChecked)
FunctionBuildConfig.isReportWarning = isChecked
}
tbNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
tbNewV2NData.setOnCheckedChangeListener { _, isChecked ->
- hmiAction("是否是V2N新链路(云->工控机->App)",isChecked)
+ hmiAction("SOP 是否是V2N新链路(云->工控机->App)",isChecked)
FunctionBuildConfig.isNewV2NData = isChecked
}
@@ -249,7 +253,7 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.detouringSpeed--
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
}
- hmiAction("变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
+ hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
}
ivSpeedAdd.setOnClickListener {
if (FunctionBuildConfig.detouringSpeed >= 7) {
@@ -258,17 +262,17 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.detouringSpeed++
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
}
- hmiAction("变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
+ hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
}
btnSpeedSet.setOnClickListener {
val isSuccess =
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble())
if (isSuccess == true) {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
- hmiAction("变道绕障的目标障碍物速度阈值设置","成功")
+ hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","成功")
} else {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
- hmiAction("变道绕障的目标障碍物速度阈值设置","失败")
+ hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","失败")
}
}
@@ -288,14 +292,26 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener(
FuncBizConfig.FOUNDATION, TAG, true, this
)
+ CallerHmiViewControlListenerManager.addListener(TAG,this)
// 开启定时查询速度
// Timer().schedule(timerTaskRefresh, Date(), 500)
}
+ override fun updateFuncMode(tag: String, boolean: Boolean) {
+ super.updateFuncMode(tag, boolean)
+ if(tag == FUNC_MODE_DEMO){
+ tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
+ }
+ if(tag == FUNC_MODE_RAIN){
+ tbRainMode.isChecked = FunctionBuildConfig.isRainMode
+ }
+ }
+
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
// 移除 业务配置监听
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(FuncBizConfig.FOUNDATION, TAG)
+ CallerHmiViewControlListenerManager.removeListener(TAG)
// try {
// timerTaskRefresh.cancel()
// } catch (e: Exception) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt
index 1aec12237f..d1c1a7c3b6 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt
@@ -20,11 +20,6 @@ class DemoModeHiddenSwitch(context: Context, attrs: AttributeSet?) : View(contex
//单次查询,是否有行程信息(订单进行中时点击不生效),autopilotControlParameters为null代表不处于自动驾驶状态下
if (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().autopilotControlParameters == null) {
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
- CallerHmiManager.updateStatusBarLeftView(
- FunctionBuildConfig.isDemoMode,
- "demoMode",
- DemoModeView(context)
- )
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
if (!FunctionBuildConfig.isDemoMode) {
//关闭美化模式时,通知工控机
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DemoModeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DemoModeView.kt
index f0a51a62f8..393bed9ab7 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DemoModeView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DemoModeView.kt
@@ -4,20 +4,56 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.RelativeLayout
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
+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.call.autopilot.CallerAutoPilotControlManager
+import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
/**
* 演示模式控件
- * 放置于StatusBar右侧位置
+ * 放置于StatusBar左侧位置
*/
class DemoModeView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
-) : RelativeLayout(context, attrs, defStyleAttr) {
+) : RelativeLayout(context, attrs, defStyleAttr), IViewControlListener {
init {
LayoutInflater.from(context).inflate(R.layout.view_demo_mode, this, true)
+ background = this.context.getDrawable(R.drawable.demo_mode)
+ setOnClickListener {
+ HmiActionLog.hmiAction("SOP 演示模式开关", !FunctionBuildConfig.isDemoMode)
+ FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
+ CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
+ CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_DEMO,FunctionBuildConfig.isDemoMode)
+ if (!FunctionBuildConfig.isDemoMode) {
+ //关闭美化模式时,通知工控机
+ CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
+ }
+ }
}
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ CallerHmiViewControlListenerManager.addListener("DemoModeView",this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerHmiViewControlListenerManager.removeListener("DemoModeView")
+ }
+
+ override fun updateFuncMode(tag: String, boolean: Boolean) {
+ if(tag == FUNC_MODE_DEMO){
+ background = if(FunctionBuildConfig.isDemoMode){
+ this.context.getDrawable(R.drawable.demo_mode_open)
+ }else{
+ this.context.getDrawable(R.drawable.demo_mode)
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RainModeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RainModeView.kt
new file mode 100644
index 0000000000..0b18a1c77a
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RainModeView.kt
@@ -0,0 +1,56 @@
+package com.mogo.eagle.core.function.hmi.ui.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.widget.RelativeLayout
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
+import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
+import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
+import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
+
+/**
+ * 雨天模式控件
+ * 放置于StatusBar左侧位置
+ */
+class RainModeView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : RelativeLayout(context, attrs, defStyleAttr), IViewControlListener {
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_demo_mode, this, true)
+ background = this.context.getDrawable(R.drawable.rain_mode)
+ setOnClickListener {
+ HmiActionLog.hmiAction("SOP 雨天模式开关", !FunctionBuildConfig.isRainMode)
+ FunctionBuildConfig.isRainMode = !FunctionBuildConfig.isRainMode
+ CallerAutoPilotControlManager.setRainMode(FunctionBuildConfig.isRainMode)
+ CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_RAIN, FunctionBuildConfig.isRainMode)
+ }
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ CallerHmiViewControlListenerManager.addListener("RainModeView",this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerHmiViewControlListenerManager.removeListener("RainModeView")
+ }
+
+ override fun updateFuncMode(tag: String, boolean: Boolean) {
+ if(tag == FUNC_MODE_RAIN){
+ background = if(FunctionBuildConfig.isRainMode){
+ this.context.getDrawable(R.drawable.rain_mode_open)
+ }else{
+ this.context.getDrawable(R.drawable.rain_mode)
+ }
+ }
+ }
+
+}
\ No newline at end of file
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 cc791d43cd..827928b818 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
@@ -8,6 +8,8 @@ import android.view.ViewGroup
import android.widget.LinearLayout
import com.mogo.eagle.core.data.config.FunctionBuildConfig
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.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
@@ -52,7 +54,8 @@ class StatusBarView @JvmOverloads constructor(
//将状态窗口中的状态移到状态栏上
CallerDevaToolsManager.showStatusBar(context, status_container)
- updateStatusBarRightView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(this.context))
+ updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context))
+ updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context))
}
override fun onSkinModeChange(skinMode: Int) {
@@ -86,6 +89,9 @@ class StatusBarView @JvmOverloads constructor(
override fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) {
if (insert) {
+ if(leftViewList.contains(tag)){
+ return
+ }
leftViewList.add(0, tag)
viewStatusBarLeft.addView(viewGroup, 0)
} else {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_divider_empty.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_divider_empty.xml
new file mode 100644
index 0000000000..bd966793fa
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_divider_empty.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/demo_mode_open.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/demo_mode_open.png
new file mode 100644
index 0000000000..b32c8ec113
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/demo_mode_open.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode.png
new file mode 100644
index 0000000000..a098a5a1c7
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode_open.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode_open.png
new file mode 100644
index 0000000000..4fe095671e
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rain_mode_open.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_demo_mode.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_demo_mode.xml
index 81ffb29e9e..a1939c09e7 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_demo_mode.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_demo_mode.xml
@@ -6,7 +6,6 @@
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml
index ab277bbb58..226fef29b4 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml
@@ -50,6 +50,8 @@
android:layout_height="match_parent"
android:gravity="end|center"
android:orientation="horizontal"
+ android:showDividers="middle"
+ android:divider="@drawable/bg_divider_empty"
android:layout_marginStart="@dimen/dp_8"/>
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
index 2dcdc304b8..11d273d8f5 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
@@ -7,6 +7,8 @@ interface IViewControlListener {
companion object{
const val TrafficLightView_TAG = "TrafficLightView_TAG"
const val LimitingVelocityView_TAG = "LimitingVelocityView_TAG"
+ const val FUNC_MODE_DEMO = "demoMode"
+ const val FUNC_MODE_RAIN = "rainMode"
}
/** --------- View --------- **/
@@ -36,4 +38,9 @@ interface IViewControlListener {
*/
fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int){}
+ /**
+ * 更新Func Mode
+ */
+ fun updateFuncMode(tag:String, boolean: Boolean){}
+
}
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt
index 566b6e209e..6105344f43 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.hmi
import android.view.ViewGroup
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListenerManager
import com.mogo.eagle.core.function.call.base.CallerBase
/**
@@ -23,13 +24,20 @@ object CallerHmiViewControlListenerManager : CallerBase()
M_LISTENERS[tag]?.setStatusBarDarkOrLight(light)
}
+ fun invokeFuncMode(funcTag:String, boolean: Boolean){
+ M_LISTENERS.forEach {
+ val listener = it.value
+ listener.updateFuncMode(funcTag, boolean)
+ }
+ }
+
fun updateStatusBarRightView(
tag: String,
insert: Boolean,
viewTag: String,
viewGroup: ViewGroup
) {
- M_LISTENERS[tag]?.updateStatusBarRightView(insert, tag, viewGroup)
+ M_LISTENERS[tag]?.updateStatusBarRightView(insert, viewTag, viewGroup)
}
fun updateStatusBarLeftView(
@@ -38,7 +46,7 @@ object CallerHmiViewControlListenerManager : CallerBase()
viewTag: String,
viewGroup: ViewGroup
) {
- M_LISTENERS[tag]?.updateStatusBarLeftView(insert, tag, viewGroup)
+ M_LISTENERS[tag]?.updateStatusBarLeftView(insert, viewTag, viewGroup)
}
fun updateStatusBarDownloadView(tag: String, insert: Boolean, viewTag: String, progress: Int) {
diff --git a/gradle/ext.gradle b/gradle/ext.gradle
index 9bcaba7a7b..8168dcea82 100644
--- a/gradle/ext.gradle
+++ b/gradle/ext.gradle
@@ -3,6 +3,6 @@ ext {
kotlin_version = '1.5.30'
plugin_version = '10.0.0_mogo'
hook_log_plugin_version = '1.7.2'
- service_chain_version = '5.2.9'
+ service_chain_version = '5.2.10'
lancetx_plugin_version = '10.0.3_mogo'
}
\ No newline at end of file