diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index 7aeb823941..4927f3b3ee 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -180,13 +180,13 @@ object DebugDataDispatch { val state = intent.getIntExtra("show", 0) when (state) { 0 -> { - CallerVisualAngleManager.changeScene(LongSight(0)) + CallerVisualAngleManager.changeScene(LongSight()) } 1 -> { - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default()) } 2 -> { - CallerVisualAngleManager.changeScene(CrossRoad(0)) + CallerVisualAngleManager.changeScene(CrossRoad()) } else -> {} } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt index ab8165ed34..bdd9dc4a6c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt @@ -76,11 +76,11 @@ class VisualViewModel : ViewModel(), when (angle) { Visualangle.Middle -> { - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default()) } Visualangle.Long -> { - CallerVisualAngleManager.changeScene(LongSight(0)) + CallerVisualAngleManager.changeScene(LongSight()) } Visualangle.UnChange -> { diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt index 27f2fda68e..74a1a957b9 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt @@ -74,33 +74,33 @@ class DebugViewModel : ViewModel(), fun changeVisualView() { CallerVisualAngleManager.getCurrentScene().let { - val default = Default(0) + val default = Default() when (it.angle) { VisualAngleMode.MODE_MEDIUM_SIGHT -> { if(default.angle==VisualAngleMode.MODE_MEDIUM_SIGHT){ - CallerVisualAngleManager.changeScene(LongSight(0)) + CallerVisualAngleManager.changeScene(LongSight()) } } VisualAngleMode.MODE_LONG_SIGHT -> { - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default()) } VisualAngleMode.MAP_STYLE_VR_SKY_BOX -> { if(default.angle==VisualAngleMode.MAP_STYLE_VR_SKY_BOX){ - CallerVisualAngleManager.changeScene(LongSight(0)) + CallerVisualAngleManager.changeScene(LongSight()) } } else -> { - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default()) } } } } fun changeVisualView2Cro() { - CallerVisualAngleManager.changeScene(CrossRoad(0)) + CallerVisualAngleManager.changeScene(CrossRoad()) } interface IVisualCallback { 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 0c306bafca..72b15cf6f7 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 @@ -199,7 +199,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp } catch (Throwable ignore) {} } } - CallerVisualAngleManager.INSTANCE.changeScene(new Default(3, TimeUnit.SECONDS)); + CallerVisualAngleManager.INSTANCE.changeScene(new Default(3, TimeUnit.SECONDS, false)); } release(); } 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 4ed88e21f9..151b583b96 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 @@ -94,19 +94,21 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { } } - override fun onStopLineInfo(info: StopLine) { Log.d(TAG, "-- onStopLineInfo --: ${info.distance}") if (!hasCrossRoad && info.distance <= 80.0) { hasCrossRoad = true - changeScene(CrossRoad(2)) - } - if (hasCrossRoad && triggerRoadId.get() == null && info.distance <= 20) { - val roadId = this.roadId.get() - if (roadId != null && roadId != "0") { - triggerRoadId.set(this.roadId.get()) - distanceOfCarToStopLine.set(info.distance) - triggerLocation.set(CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()) + try { + if (triggerRoadId.get() == null) { + val roadId = this.roadId.get() + if (roadId != null && roadId != "0") { + triggerRoadId.set(roadId) + distanceOfCarToStopLine.set(info.distance) + triggerLocation.set(CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()) + } + } + } finally { + changeScene(CrossRoad()) } } } @@ -155,10 +157,16 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { if (prev?.javaClass == scene.javaClass) { return@launch } - val lastPriority = prev?.priority ?: Int.MIN_VALUE - val currentPriority = scene.priority - if (lastPriority > currentPriority) { - return@launch + var verifyPrior = true + if (scene is Default && scene.forceClosePrev) { + verifyPrior = false + } + if (verifyPrior) { + val lastPriority = prev?.priority ?: Int.MIN_VALUE + val currentPriority = scene.priority + if (lastPriority > currentPriority) { + return@launch + } } doChangeAngle(scene) }.also { @@ -192,7 +200,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { if (target.displayThreshold > 0) { scope.launch { delay(target.displayThreshold) - doChangeAngle(Default(0)) + doChangeAngle(Default()) } } } 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 dd884e2dca..29bf0ced6f 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 @@ -3,11 +3,12 @@ package com.mogo.eagle.core.function.angle.scenes import com.mogo.eagle.core.function.api.map.angle.Scene import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS_NEW +import java.util.concurrent.TimeUnit /** * 十字路口 */ -class CrossRoad(private val delayTime: Long): Scene { +class CrossRoad(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene { override val angle: VisualAngleMode get() = MAP_STYLE_VR_ANGLE_CROSS_NEW @@ -16,7 +17,7 @@ class CrossRoad(private val delayTime: Long): Scene { get() = -1 override val delay: Long - get() = delayTime + get() = unit.toMillis(delayTime) override val isCanSwitch: Boolean get() = false 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 503cf1091f..e75e2c635f 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 @@ -11,12 +11,13 @@ import java.util.concurrent.TimeUnit * @param delay: 表示多少稍后,默认值为2 * @param unit: 时间单位,默认为秒 */ -class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene { + +class Default(val delayTime: Long = 0, val unit: TimeUnit = TimeUnit.SECONDS, val forceClosePrev: Boolean = false): Scene { override val angle: VisualAngleMode get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - override val priority: Int = 0 + override val priority: Int = -1 override val displayThreshold: Long get() = 0 @@ -31,6 +32,6 @@ class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): S get() = true override fun toString(): String { - return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority)" + return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority, closePrevious=$forceClosePrev)" } } \ No newline at end of file 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 2f2b612c17..a26ac58437 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 @@ -5,7 +5,7 @@ import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.MODE_LONG_SIGHT import java.util.concurrent.TimeUnit -class LongSight(private val delayTime: Long, private val unit: TimeUnit = TimeUnit.SECONDS): Scene { +class LongSight(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene { override val angle: VisualAngleMode get() = MODE_LONG_SIGHT diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/RomaManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/RomaManager.kt index e3032adb75..fc975e552c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/RomaManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/RomaManager.kt @@ -165,7 +165,7 @@ class RomaManager() : IMoGoPlanningRottingListener, CallerMapUIServiceManager.getMapUIController()?.visualAngleLock(false) CallerMapUIServiceManager.getMapUIController()?.setScrollGesturesEnable(true) // updateLongSightLevel(false) - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default(forceClosePrev = true)) requestRangeOfIdentify(false) MapIdentifySubscriber.instance.clearAiCloudRoma() // 主动关闭roma,回到中景视角 @@ -224,7 +224,7 @@ class RomaManager() : IMoGoPlanningRottingListener, ), true ) // updateLongSightLevel(false) - CallerVisualAngleManager.changeScene(Default(0)) + CallerVisualAngleManager.changeScene(Default(forceClosePrev = true)) CallerMapRomaListener.invokeMapRoma(false) CallerMapIdentifyManager.updateRoam("", false) if (DebugConfig.isDebug()) {