From 629291598363469c15c5d0c236da16dac19c4106 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 21 Oct 2024 17:42:57 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0][=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2]?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E5=88=87=E6=8D=A2=E8=BF=9C=E8=A7=86?= =?UTF-8?q?=E8=A7=92=EF=BC=8C=E6=89=8B=E5=8A=BF=E6=BB=91=E5=8A=A8=E5=9B=9E?= =?UTF-8?q?=E5=BC=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../angle/MoGoVisualAngleChangeProvider.kt | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) 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 c942ef6173..c0f26e90e5 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 @@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.function.angle.scenes.CrossRoad import com.mogo.eagle.core.function.angle.scenes.Default +import com.mogo.eagle.core.function.angle.scenes.LongSight import com.mogo.eagle.core.function.angle.scenes.Roma import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.api.map.angle.IMoGoVisualAngleChangeProvider.OnMoGoVisualAngleSceneChangeListener @@ -42,6 +43,8 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { private val prevScene by lazy { AtomicReference() } + private var timerJob: Job? = null + private val listener = object : IMoGoMapRoadListener { private val roadId = AtomicReference() private val triggerRoadId = AtomicReference() @@ -187,7 +190,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { private fun doChangeAngle(target: Scene) { val angle = target.getVisualAngleMode() - CallerMapUIServiceManager.getMapUIController()?.also { + CallerMapUIServiceManager.getMapUIController()?.also { itx -> Log.d(TAG, "--- doChangeAngle ---: $target") val prev = prevScene.get() try { @@ -204,7 +207,23 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { DOWN -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(5.0f) } if (target !is Roma) { - it.changeMapVisualAngle(angle, null) + if (target is LongSight) { + timerJob?.safeCancel() + scope.launch { + CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false) + itx.changeMapVisualAngle(angle, null) + delay(3000) + CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true) + }.also { + it.invokeOnCompletion { + CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true) + } + timerJob = it + } + } else { + timerJob?.safeCancel() + itx.changeMapVisualAngle(angle, null) + } } } finally { if (prev == null || prev.javaClass != target.javaClass) {