From 2ef6bb6c80a52e1a22fc5fd4c99af8e0b00c80b0 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 19 Jul 2024 18:12:15 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0]=E5=BD=93=E8=9E=8D=E5=90=88=E7=BA=A2?= =?UTF-8?q?=E7=BB=BF=E7=81=AF=E5=B1=95=E7=A4=BA=E6=97=B6=EF=BC=8C=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E6=9D=A5=E6=BA=90=E7=9A=84=E7=BA=A2=E7=BB=BF=E7=81=AF?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/v2x/TrafficLightDispatcher.kt | 4 +++ .../hmi/ui/widget/SingleTrafficLightView.kt | 32 +++++++++++++++++-- .../union/IMoGoTrafficLightListener.kt | 6 ++++ .../v2x/CallerTrafficLightListenerManager.kt | 11 +++++++ 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt index c9596c5b37..87bf10f51f 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt @@ -169,6 +169,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight if(convert(light.state) == TrafficLightEnum.BLACK){ //隐藏当前红绿灯以及额外提示框 CallerTrafficLightListenerManager.disableTrafficLight() + CallerTrafficLightListenerManager.notifyFusionTrafficLightStatus(false) hasFusionLightStatus = false isPrompted = false isTurnGreen = false @@ -182,6 +183,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight if ((System.currentTimeMillis() - lastLightTime) > 1000) { //隐藏红绿灯显示 hide("倒计时结束隐藏", DataSourceType.TELEMATIC_UNION_V2N) + CallerTrafficLightListenerManager.notifyFusionTrafficLightStatus(false) lightCountDownTimer?.cancel() lightCountDownTimer = null hasFusionLightStatus = false @@ -193,6 +195,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight override fun onFinish() { //隐藏红绿灯显示 hide("倒计时结束隐藏", DataSourceType.TELEMATIC_UNION_V2N) + CallerTrafficLightListenerManager.notifyFusionTrafficLightStatus(false) lightCountDownTimer?.cancel() lightCountDownTimer = null hasFusionLightStatus = false @@ -214,6 +217,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight //当前灯态倒计时小于5S时,展示额外的提示框 onTrafficLightPrompt(convert(light.state),light.duration,convert(light.nextState),light.nextDuration, convert(light.nextTwoState),light.nextTwoDuration) + CallerTrafficLightListenerManager.notifyFusionTrafficLightStatus(true) /** * 司机端提示: * 车辆等红灯,在红/黄灯剩余5s且下一灯态为绿灯时,提示“红灯即将变绿”;并在变为绿灯时有提示起步的动效 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt index 0380069b63..3f71068566 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt @@ -46,6 +46,8 @@ class SingleTrafficLightView @JvmOverloads constructor( private var mLightSourceDivider: View? = null private var mCurrentLightId = TrafficLightEnum.BLACK + private var fusionTrafficLightState: Boolean = false //当前是否有融合红绿灯展示 + private var trafficLightUser = 0 //0:默认;1:Taxi乘客屏肤色 init{ @@ -138,6 +140,24 @@ class SingleTrafficLightView @JvmOverloads constructor( } } + /** + * 获取融合红绿灯展示状态 + * @param isVisible true展示 false不展示 + */ + override fun notifyFusionTrafficLightStatus(isVisible: Boolean) { + super.notifyFusionTrafficLightStatus(isVisible) + if(fusionTrafficLightState != isVisible){ + fusionTrafficLightState = isVisible + if(isVisible){ + UiThreadHandler.post{ + if(this@SingleTrafficLightView.visibility == View.VISIBLE){ + this@SingleTrafficLightView.visibility = View.GONE + } + } + } + } + } + override fun disableTrafficLightCountDown() { super.disableTrafficLightCountDown() UiThreadHandler.post { @@ -285,7 +305,9 @@ class SingleTrafficLightView @JvmOverloads constructor( }else{ mLightIconIV!!.setBackgroundResource(R.drawable.hmi_light_red_nor) } - this@SingleTrafficLightView.visibility = VISIBLE + if(!fusionTrafficLightState){ + this@SingleTrafficLightView.visibility = VISIBLE + } } TrafficLightEnum.YELLOW -> { if(trafficLightUser == 1){ @@ -293,7 +315,9 @@ class SingleTrafficLightView @JvmOverloads constructor( }else{ mLightIconIV!!.setBackgroundResource(R.drawable.hmi_lightyellow_nor) } - this@SingleTrafficLightView.visibility = VISIBLE + if(!fusionTrafficLightState){ + this@SingleTrafficLightView.visibility = VISIBLE + } } TrafficLightEnum.GREEN -> { if(trafficLightUser == 1){ @@ -301,7 +325,9 @@ class SingleTrafficLightView @JvmOverloads constructor( }else{ mLightIconIV!!.setBackgroundResource(R.drawable.hmi_light_green_nor) } - this@SingleTrafficLightView.visibility = VISIBLE + if(!fusionTrafficLightState){ + this@SingleTrafficLightView.visibility = VISIBLE + } } else -> this@SingleTrafficLightView.visibility = GONE } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt index 4c0fec1918..5148f2525d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt @@ -106,6 +106,12 @@ interface IMoGoTrafficLightListener { */ fun disableTrafficLight() {} + /** + * 通知融合红绿灯展示状态 + * @param isVisible true展示 false不展示 + */ + fun notifyFusionTrafficLightStatus(isVisible: Boolean){} + /** * 关闭红绿灯计数 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt index fa5c3cb131..556608159d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt @@ -141,6 +141,17 @@ object CallerTrafficLightListenerManager : CallerBase } } + /** + * 通知融合红绿灯展示状态 + * @param isVisible true展示 false不展示 + */ + fun notifyFusionTrafficLightStatus(isVisible: Boolean){ + M_LISTENERS.forEach{ + val listener = it.value + listener.notifyFusionTrafficLightStatus(isVisible) + } + } + fun disableTrafficLightCountDown() { M_LISTENERS.forEach { val listener = it.value