From 81e4bea8eaf9123571d201ef761c2d7e9f121433 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 1 Jul 2024 12:06:19 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0][=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2]?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=A7=86=E8=A7=92=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt | 5 ++--- .../scene/road/V2XRoadEventScenario.java | 7 ++---- .../datacenter/obu/MogoObuDcCombineManager.kt | 4 ++-- .../obu/MogoPrivateObuNewManager.kt | 5 ++--- .../angle/MoGoVisualAngleChangeProvider.kt | 22 +++++++++++++++---- .../core/function/angle/scenes/CrossRoad.kt | 2 +- .../core/function/angle/scenes/Default.kt | 2 +- .../core/function/angle/scenes/LongSight.kt | 2 +- .../core/function/angle/scenes/RoadEvent.kt | 4 ++-- .../angle/IMoGoVisualAngleChangeProvider.kt | 4 +++- .../call/map/CallerVisualAngleManager.kt | 8 +++++-- 11 files changed, 40 insertions(+), 25 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index a2faa7096c..4b2d3d6dbd 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -44,7 +44,6 @@ import mogo.telematics.pad.MessagePad.TrackedObject import mogo.v2x.MogoV2X import mogo.v2x.MogoV2X.RSI_PB import mogo.v2x.MogoV2X.RTEData_PB -import java.lang.Math.abs import java.util.concurrent.TimeUnit.SECONDS /** @@ -296,13 +295,13 @@ internal object V2NIdentifyDrawer { override fun onShow() { super.onShow() runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.START) } - CallerVisualAngleManager.changeAngle(RoadEvent(2, SECONDS)) + CallerVisualAngleManager.changeScene(RoadEvent(2, SECONDS)) } override fun onDismiss() { super.onDismiss() runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.STOP) } - CallerVisualAngleManager.changeAngle(Default()) + CallerVisualAngleManager.changeScene(Default()) } }, ALERT_WARNING_TOP, diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java index 3b91f91e88..0c306bafca 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java @@ -1,8 +1,5 @@ package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road; -import android.telecom.Call; - -import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.enums.CommunicationType; import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; @@ -171,7 +168,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp if (isNeedChangeAngle()) { MarkerLocation location = content.getLocation(); if (location != null) { - CallerVisualAngleManager.INSTANCE.changeAngle(new RoadEvent(2, TimeUnit.SECONDS)); + CallerVisualAngleManager.INSTANCE.changeScene(new RoadEvent(2, TimeUnit.SECONDS)); } } if (entity.isNeedAddLine() && !EventTypeEnumNew.TYPE_SOCKET_ROAD_CONGESTION.getPoiType().equals(content.getPoiType())) { @@ -202,7 +199,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp } catch (Throwable ignore) {} } } - CallerVisualAngleManager.INSTANCE.changeAngle(new Default(3, TimeUnit.SECONDS)); + CallerVisualAngleManager.INSTANCE.changeScene(new Default(3, TimeUnit.SECONDS)); } release(); } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index d0df8332fe..37b63b34be 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -417,12 +417,12 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener showWarning(v2xType, alertContent, ttsContent, direction, object : IMoGoWarningStatusListener { override fun onShow() { - CallerVisualAngleManager.changeAngle(CrossRoad(2)) + CallerVisualAngleManager.changeScene(CrossRoad(2)) } override fun onDismiss() { super.onDismiss() - CallerVisualAngleManager.changeAngle(Default()) + CallerVisualAngleManager.changeScene(Default()) } }) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index c0c6211fd7..e98ed806c1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -9,7 +9,6 @@ import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.function.angle.scenes.CrossRoad import com.mogo.eagle.core.function.angle.scenes.Default import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener -import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager @@ -968,14 +967,14 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { override fun onShow() { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { //盲区预警,展示近视角 - CallerVisualAngleManager.changeAngle(CrossRoad(2)) + CallerVisualAngleManager.changeScene(CrossRoad(2)) } } override fun onDismiss() { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { //盲区预警,取消近视角 - CallerVisualAngleManager.changeAngle(Default()) + CallerVisualAngleManager.changeScene(Default()) } } }, diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index 402840435a..279bb7b85a 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -71,7 +71,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { } } if (triggerClose) { - changeAngle(Default()) + changeScene(Default()) } } @@ -83,7 +83,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { triggerRoadId.set(this.roadId.get()) distanceOfCarToStopLine.set(info.distance) triggerLocation.set(CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()) - changeAngle(CrossRoad(2)) + changeScene(CrossRoad(2)) } } } @@ -130,7 +130,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { mLevel = level } - override fun changeAngle(scene: Scene) { + override fun changeScene(scene: Scene) { if(mLevel){ return } @@ -140,13 +140,21 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { if (delay > 0) { delay(delay) } - + val lastPriority = prevScene.get()?.priority ?: Int.MIN_VALUE + val currentPriority = scene.priority + if (lastPriority > currentPriority) { + return@launch + } doChangeAngle(scene) }.also { prevJob = it } } + override fun getCurrentScene(): Scene { + return prevScene.get() ?: Default() + } + private fun doChangeAngle(target: Scene) { val angle = target.angle CallerMapUIServiceManager.getMapUIController()?.also { @@ -159,6 +167,12 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { notifyChanged(target) } prevScene.set(target) + if (target.displayThreshold > 0) { + scope.launch { + delay(target.displayThreshold) + doChangeAngle(Default(0)) + } + } } } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt index 88d0d002f4..a50848f4c4 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt @@ -11,7 +11,7 @@ class CrossRoad(private val delayTime: Long): Scene { override val angle: VisualAngleMode get() = MAP_STYLE_VR_ANGLE_CROSS - override val priority: Int = 4 + override val priority: Int = 0 override val displayThreshold: Long get() = -1 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt index 233246fcd6..37c2667b48 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt @@ -16,7 +16,7 @@ class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): S override val angle: VisualAngleMode get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - override val priority: Int = 1 + override val priority: Int = 0 override val displayThreshold: Long get() = 0 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt index 55cba3b488..1a4429092b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt @@ -12,7 +12,7 @@ class LongSight(private val delayTime: Long, private val unit: TimeUnit = TimeUn override val priority: Int get() = 0 override val displayThreshold: Long - get() = 0 + get() = -1 override val delay: Long get() = unit.toMillis(delayTime) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt index 7647705482..23ec37979b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt @@ -13,10 +13,10 @@ class RoadEvent(private val delayTime: Long, private val unit: TimeUnit): Scene override val angle: VisualAngleMode = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - override val priority: Int = 5 + override val priority: Int = 0 override val displayThreshold: Long - get() = TimeUnit.SECONDS.toMillis(8) + get() = -1 override val delay: Long get() = unit.toMillis(delayTime) diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt index dd71253bfd..eaf2e36e35 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt @@ -6,7 +6,9 @@ interface IMoGoVisualAngleChangeProvider: IProvider { fun updateLongSightLevel(level: Boolean) - fun changeAngle(scene: Scene) + fun changeScene(scene: Scene) + + fun getCurrentScene(): Scene fun addListener(tag: String, listener: OnMoGoVisualAngleSceneChangeListener) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index d8a7e0031d..6d261c9689 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -22,8 +22,12 @@ object CallerVisualAngleManager { } } - fun changeAngle(scene: Scene) { - provider?.changeAngle(scene) + fun changeScene(scene: Scene) { + provider?.changeScene(scene) + } + + fun getCurrentScene(): Scene { + return provider?.getCurrentScene() ?: throw AssertionError() } fun updateLongSightLevel(level: Boolean) {