diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 8ce2536cf9..1313c9a343 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -9,6 +9,7 @@ import android.os.Build.VERSION_CODES import android.os.Bundle import android.text.TextUtils import android.transition.* +import android.util.* import android.view.Gravity import android.view.View import android.view.ViewGroup @@ -60,8 +61,8 @@ import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager import com.mogo.eagle.core.function.call.check.CallerCheckManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.call.map.* +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Turning import com.mogo.eagle.core.function.call.monitor.CallerMonitorManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -98,6 +99,7 @@ import com.mogo.eagle.core.utilcode.reminder.api.* import com.mogo.eagle.core.utilcode.reminder.api.IReminder.IStateChangeListener import com.mogo.eagle.core.utilcode.reminder.api.impl.* import com.mogo.eagle.core.utilcode.util.* +import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.map.MogoMap import com.zhidao.support.adas.high.common.MogoReport.Code.Error.EMAP.* @@ -1372,12 +1374,26 @@ class MoGoHmiFragment : MvpFragment(), private var isRightLight: Boolean = false private var isDisappare: Boolean = false + @Volatile + private var isVisualAngleChanged = false + /** * 显示转向灯效果 if (HmiBuildConfig.isShowBadCaseView) { */ override fun showTurnLight(light: Int) { if (HmiBuildConfig.isShowTurnLightView) { ThreadUtils.runOnUiThread { + if (light == 1 || light == 2) { + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + CallerVisualAngleManager.changeVisualAngle(Turning(true)) + } + } else { + if (isVisualAngleChanged) { + isVisualAngleChanged = false + CallerVisualAngleManager.changeVisualAngle(Turning(false)) + } + } if (light == 1) { if (!isLeftLight) { isLeftLight = true 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 d6709a65ff..c412fee003 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 @@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.* import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.map.uicontroller.VisualAngleMode import kotlinx.coroutines.* @@ -199,30 +199,30 @@ object CallerVisualAngleManager { } val triggerTime = SystemClock.elapsedRealtime() scope.launch { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 1 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 1 ---") val displayed = getDisplayed() if (displayed == null) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 2 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 2 ---") val top = getTop() //堆顶 if (top != null) { if (top.target.priority >= scene.priority) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 3 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 3 ---") top.triggerTime = triggerTime doChangeAngle(top) synchronized(heap){ heap += Record(scene, triggerTime = -1) } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) } } else { if (scene.javaClass == displayed.target.javaClass) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 5 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 5 ---") defaultDelayJob?.safeCancel() return@launch } @@ -242,32 +242,32 @@ object CallerVisualAngleManager { return@launch } } - if (prev.priority >= scene.priority && (prev is RoadEvent || prev is TooClose)) { + if (scene !is Default && prev.priority >= scene.priority && (prev is RoadEvent || prev is TooClose)) { val displayDuration = triggerTime - prevTriggerTime if (displayDuration < prev.displayThreshold) { return@launch } } if (scene is Default) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 6 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 6 ---") defaultDelayJob?.safeCancel() launch { val delay = scene.unit.toMillis(scene.delay) - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 7 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 7 ---") delay(delay) - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 8 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 8 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) heap -= displayed }.also { itx -> itx.invokeOnCompletion { if (it is CancellationException) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 9 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 9 ---") } } defaultDelayJob = itx } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 10 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 10 ---") defaultDelayJob?.safeCancel() if (displayed.target.priority < scene.priority) { doChangeAngle(Record(scene, triggerTime = triggerTime)) @@ -281,14 +281,14 @@ object CallerVisualAngleManager { private fun doChangeAngle(record: Record) { val angle = record.target.angle CallerMapUIServiceManager.getMapUIController()?.also { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 13 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 13 ---") if (record.target !is Default) { record.isDisplay = true synchronized(heap) { heap += record } } - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 15 ---> angle: $angle") + Logger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 15 ---> angle: $angle") it.changeMapVisualAngle(angle, null) } }