[Log]日志统一使用CallerLogger

This commit is contained in:
renwj
2022-03-22 19:23:06 +08:00
parent 229debcd4b
commit fd4059cb81
6 changed files with 62 additions and 47 deletions

View File

@@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.call.map
import android.os.Handler
import android.os.Looper
import android.os.SystemClock
import android.util.Log
import com.mogo.eagle.core.data.map.MapRoadInfo.StopLine
import com.mogo.eagle.core.data.map.MogoLatLng
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager.OnRoadListener
@@ -11,6 +10,8 @@ import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Cros
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.LowSpeed
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.map.uicontroller.VisualAngleMode
import kotlinx.coroutines.*
import kotlinx.coroutines.android.asCoroutineDispatcher
@@ -170,9 +171,6 @@ object CallerVisualAngleManager {
}
private val heap by lazy {
/**
* 堆, 大根堆还是小根堆由[Record.compareTo]方法决定
*/
PriorityQueue<Record>()
}
@@ -180,49 +178,53 @@ object CallerVisualAngleManager {
fun changeVisualAngle(scene: Scene) {
val triggerTime = SystemClock.elapsedRealtime()
scope.launch {
Log.d("XXX", "--- 1 -----")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 1 ---")
val displayed = getDisplayed()
if (displayed == null) {
Log.d("XXX", "--- 2 -----")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 2 ---")
val top = getTop() //堆顶
if (top != null && top.target.priority > scene.priority) {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 3 ---")
doChangeAngle(top)
heap += Record(scene, triggerTime = triggerTime)
} else {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---")
doChangeAngle(Record(scene, triggerTime = triggerTime))
}
Log.d(TAG, "没有正在展示的视角,当前要展示的视角: $scene")
} else {
Log.d("XXX", "--- 3 -----")
if (scene.javaClass == displayed.target.javaClass) {
Log.d("XXX", "--- 4 -----")
Log.d(TAG, "同一种场景不需要重复展示")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 5 ---")
defaultDelayJob?.safeCancel()
return@launch
}
if (scene is Default) {
Log.d("XXX", "--- 5 -----")
Log.d(TAG, "恢复到默认视图,之前展示的视图:$displayed")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 6 ---")
defaultDelayJob?.safeCancel()
launch {
val delay = scene.unit.toMillis(scene.delay)
Log.d(TAG, "默认视图开启延时倒计时, 倒计时时间:${delay} ms.")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 7 ---")
delay(delay)
Log.d(TAG, "默认视图结束倒计时,开始展示...")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 8 ---")
doChangeAngle(Record(scene, triggerTime = triggerTime))
heap -= displayed
}.also { defaultDelayJob = it }
}.also { itx ->
itx.invokeOnCompletion {
if (it is CancellationException) {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 9 ---")
}
}
defaultDelayJob = itx
}
} else {
Log.d("XXX", "--- 6 -----")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 10 ---")
defaultDelayJob?.safeCancel()
val delta = triggerTime - displayed.triggerTime
if (delta >= MaxDisplayThreshold) {
Log.d("XXX", "--- 6-1 -----")
Log.d(TAG, "场景: $scene 触发展示,满足条件开始展示...")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 11 ---")
doChangeAngle(Record(scene, triggerTime = triggerTime))
} else {
Log.d("XXX", "--- 6-2 -----")
Log.d(TAG, "场景: $scene 触发展示但是在30s内丢弃...")
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 12 ---")
}
}
}
@@ -232,6 +234,7 @@ object CallerVisualAngleManager {
@OptIn(InternalCoroutinesApi::class)
private fun doChangeAngle(record: Record) {
CallerMapUIServiceManager.getMapUIController()?.also {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 13 ---")
if (record.target !is Default) {
record.isDisplay = true
synchronized(heap) {
@@ -240,8 +243,10 @@ object CallerVisualAngleManager {
}
val target = record.target
if (target is LowSpeed) {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 14 ---")
it.changeMapVisualAngle(record.target.angle, MogoLatLng(target.lat, target.lon))
} else {
CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 15 ---")
it.changeMapVisualAngle(record.target.angle, null)
}
}