[6.5.0][视角切换] 添加获取当前视角的接口
This commit is contained in:
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user