[6.5.0][视角切换] 添加获取当前视角的接口

This commit is contained in:
renwj
2024-07-01 12:06:19 +08:00
parent 59acceb7c0
commit 81e4bea8ea
11 changed files with 40 additions and 25 deletions

View File

@@ -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))
}
}
}
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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)