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 1d04a769d3..e8c3611806 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 @@ -314,14 +314,14 @@ object CallerVisualAngleManager { private fun CoroutineScope.doRealVisualAngleChange(triggerTime: Long, target: Scene, displayed: Record? = null) { if (target is Default) { Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 1 ---") + displayed?.also { + queue -= it + } defaultDelayJob?.safeCancel() launch { val delay = target.unit.toMillis(target.delay) Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 2 ---") delay(delay) - displayed?.also { - queue -= it - } Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 3 ---") doChangeAngle(Record(target, triggerTime = triggerTime)) }.also { itx -> @@ -337,7 +337,24 @@ object CallerVisualAngleManager { defaultDelayJob?.safeCancel() if (displayed == null || displayed.target.priority < target.priority) { Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 6 ---") - queue -= displayed + displayed?.also { + queue -= it + } + if (target is Turning) { + if (!target.open) { + Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 7 ---") + changeVisualAngle(Default()) + return + } + } + if (target is CrossRoad) { + if (!target.open) { + Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 8 ---") + changeVisualAngle(Default()) + return + } + } + Log.d("${M_DEVA}${TAG}", "--- doRealVisualAngleChange --- 10 ---") doChangeAngle(Record(target, triggerTime = triggerTime)) } }