[6.5.0][道路事件] 逻辑优化

This commit is contained in:
renwj
2024-07-12 19:26:25 +08:00
parent dce9797ef0
commit 3b420253d8
10 changed files with 91 additions and 47 deletions

View File

@@ -78,7 +78,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
override fun onStopLineInfo(info: StopLine) {
Log.d(TAG, "-- onStopLineInfo --: ${info.distance}")
if (!hasCrossRoad && info.distance <= 30.0) {
if (!hasCrossRoad && info.distance <= 80.0) {
hasCrossRoad = true
triggerRoadId.set(this.roadId.get())
distanceOfCarToStopLine.set(info.distance)
@@ -140,7 +140,11 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
if (delay > 0) {
delay(delay)
}
val lastPriority = prevScene.get()?.priority ?: Int.MIN_VALUE
val prev = prevScene.get()
if (prev?.javaClass == scene.javaClass) {
return@launch
}
val lastPriority = prev?.priority ?: Int.MIN_VALUE
val currentPriority = scene.priority
if (lastPriority > currentPriority) {
return@launch
@@ -161,6 +165,11 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
Log.d(TAG, "--- doChangeAngle --- $target")
val prev = prevScene.get()
try {
if (!target.isCanTouch) {
CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false)
} else {
CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true)
}
it.changeMapVisualAngle(angle, null)
} finally {
if (prev == null || prev.javaClass != target.javaClass) {

View File

@@ -22,6 +22,9 @@ class CrossRoad(private val delayTime: Long): Scene {
override val isCanSwitch: Boolean
get() = false
override val isCanTouch: Boolean
get() = false
override fun toString(): String {
return "CrossRoad(delayTime=${delayTime}, priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority})"
}

View File

@@ -27,6 +27,9 @@ class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): S
override val isCanSwitch: Boolean
get() = true
override val isCanTouch: Boolean
get() = true
override fun toString(): String {
return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority)"
}

View File

@@ -19,4 +19,7 @@ class LongSight(private val delayTime: Long, private val unit: TimeUnit = TimeUn
override val isCanSwitch: Boolean
get() = true
override val isCanTouch: Boolean
get() = true
}

View File

@@ -27,4 +27,7 @@ class RoadEvent(private val delayTime: Long, private val unit: TimeUnit): Scene
override val isCanSwitch: Boolean
get() = true
override val isCanTouch: Boolean
get() = true
}