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