diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index c977070e7d..974c82ea93 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -44,6 +44,9 @@ class TakeOverView @JvmOverloads constructor( private var takeOver = false private var isParallel: Boolean = false //是否是平行驾驶 + @Volatile + private var canSound = true //M1是否可以进行语音提示 + override fun onAttachedToWindow() { super.onAttachedToWindow() CallerAutoPilotStatusListenerManager.addListener(TAG, this) @@ -116,31 +119,8 @@ class TakeOverView @JvmOverloads constructor( if(isParallel){ if(AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ //M1仅做提示音和消息盒子,无语音播报和提示接管动画 - //加入消息盒子 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, V2XMsg( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts - ) - ) - ) - //提示音播报 - val countDownTimer = object : CountDownTimer(3000, 1000){ - override fun onTick(p0: Long) { - try { - SoundPoolUtils.getSoundPool().playSoundWithRedId(context,R.raw.weak_net_tips) - }catch (e: Exception){ - e.printStackTrace() - } - } - - override fun onFinish() { - } - - } - countDownTimer.start() + showM1ParallelDrivingWarning(EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content,EventTypeEnumNew.NETWORK_WEAK_EVENT.tts) }else{ CallerHmiManager.warningV2X( EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, @@ -205,11 +185,19 @@ class TakeOverView @JvmOverloads constructor( } //无法接管 "UNABLE_TAKEOVER"->{ - showParallelDrivingWarning("UNABLE_TAKEOVER","远程无法介入,注意随时接管","远程无法介入,注意随时接管") + if(AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ + showM1ParallelDrivingWarning("UNABLE_TAKEOVER","远程无法介入,注意随时接管","远程无法介入,注意随时接管") + }else{ + showParallelDrivingWarning("UNABLE_TAKEOVER","远程无法介入,注意随时接管","远程无法介入,注意随时接管") + } } //同步异常结束 "EXCEPTION_EXIT_SYNC"->{ - showParallelDrivingWarning("EXCEPTION_EXIT_SYNC","远程介入失败,注意随时接管","远程介入失败,注意随时接管") + if(AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ + showM1ParallelDrivingWarning("EXCEPTION_EXIT_SYNC","远程介入失败,注意随时接管", "远程介入失败,注意随时接管") + }else{ + showParallelDrivingWarning("EXCEPTION_EXIT_SYNC","远程介入失败,注意随时接管", "远程介入失败,注意随时接管") + } } //任务已被拒绝 "TASK_REJECTED"->{ @@ -217,16 +205,55 @@ class TakeOverView @JvmOverloads constructor( } //异常请人工驾驶 "PARALLEL_EXCEPTION_MANUAL_DRIVING"->{ - showParallelDrivingWarning("PARALLEL_EXCEPTION_MANUAL_DRIVING","即将靠边停车,注意随时接管","即将靠边停车,注意随时接管") + if(AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ + showM1ParallelDrivingWarning("PARALLEL_EXCEPTION_MANUAL_DRIVING","即将靠边停车,注意随时接管","即将靠边停车,注意随时接管") + }else{ + showParallelDrivingWarning("PARALLEL_EXCEPTION_MANUAL_DRIVING","即将靠边停车,注意随时接管","即将靠边停车,注意随时接管") + } } //平行驾驶异常结束 "EXCEPTION_EXIT_PARALLEL_DRIVING"->{ - showParallelDrivingWarning("EXCEPTION_EXIT_PARALLEL_DRIVING","可能应急停车,注意随时接管","可能应急停车,注意随时接管") + if(AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ + showM1ParallelDrivingWarning("EXCEPTION_EXIT_PARALLEL_DRIVING","可能应急停车,注意随时接管","可能应急停车,注意随时接管") + }else{ + showParallelDrivingWarning("EXCEPTION_EXIT_PARALLEL_DRIVING","可能应急停车,注意随时接管","可能应急停车,注意随时接管") + } } } } } + /** + * M1平行驾驶异常提示 + */ + private fun showM1ParallelDrivingWarning(poiType: String,content: String,tts: String){ + //消息盒子提示 + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg(poiType, content, tts) + ) + ) + //提示音播报 + if(canSound){ + val countDownTimer = object : CountDownTimer(3000, 1000){ + override fun onTick(p0: Long) { + try { + SoundPoolUtils.getSoundPool().playSoundWithRedId(context,R.raw.weak_net_tips) + }catch (e: Exception){ + e.printStackTrace() + } + } + + override fun onFinish() { + canSound = true + } + + } + countDownTimer.start() + canSound = false + } + } + private fun showParallelDrivingWarning(poiType: String,content: String,tts: String){ CallerHmiManager.warningV2X(poiType, content, tts, object : IMoGoWarningStatusListener {