[状态栏]添加日志追踪循迹状态延时更新

This commit is contained in:
renwj
2022-09-14 11:07:45 +08:00
parent b4bf35a192
commit 39593df458
7 changed files with 26 additions and 3 deletions

View File

@@ -4,7 +4,11 @@ import android.content.*
import android.util.*
import androidx.annotation.*
import com.mogo.eagle.core.utilcode.kotlin.*
import com.zhjt.mogo_core_function_devatools.status.entity.Status
import com.mogo.eagle.core.utilcode.mogo.logger.*
import com.zhjt.mogo_core_function_devatools.status.entity.*
import com.zhjt.mogo_core_function_devatools.status.flow.trace.*
import com.zhjt.mogo_core_function_devatools.status.flow.trace.TracingImpl
import com.zhjt.mogo_core_function_devatools.status.flow.trace.TracingImpl.Companion
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.*
import kotlinx.coroutines.channels.Channel.Factory.CONFLATED
@@ -35,9 +39,15 @@ internal abstract class IFlow< T : Status>(val ctx: Context) : CoroutineScope {
}
fun send(t: T) {
if (t is TracingStatus) {
Logger.d(TracingImpl.TAG, "send -- 1 -- state: $t")
}
if (old == t) {
return
}
if (t is TracingStatus) {
Logger.d(TracingImpl.TAG, "send -- 2 -- state: $t")
}
old = t
launch {
chl.send(t)

View File

@@ -5,6 +5,7 @@ import android.util.*
import com.mogo.eagle.core.data.autopilot.*
import com.mogo.eagle.core.function.api.autopilot.*
import com.mogo.eagle.core.function.call.autopilot.*
import com.mogo.eagle.core.utilcode.mogo.logger.*
import com.zhjt.mogo_core_function_devatools.status.entity.*
import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing.*
import com.zhjt.mogo_core_function_devatools.status.flow.*
@@ -29,6 +30,7 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
override fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) {
super.onAutopilotGuardian(guardianInfo)
Logger.d(TAG, "onAutopilotGuardian -- code: ${guardianInfo?.code}")
val current = guardianInfo?.code
val newState = current?.toState()
if (newState != null && newState != old) {
@@ -46,6 +48,7 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
super.onAutopilotStatusResponse(autoPilotStatusInfo)
Logger.d(TAG, "onAutopilotStatusResponse -- state: ${autoPilotStatusInfo.state}")
if (autoPilotStatusInfo.state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
send(TracingStatus(UNKNOWN))
return

View File

@@ -13,9 +13,12 @@ import androidx.core.content.*
import androidx.lifecycle.*
import androidx.recyclerview.widget.*
import com.mogo.eagle.core.utilcode.kotlin.*
import com.mogo.eagle.core.utilcode.mogo.logger.*
import com.mogo.eagle.core.utilcode.rv.divider.*
import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.status.entity.Status
import com.zhjt.mogo_core_function_devatools.status.entity.*
import com.zhjt.mogo_core_function_devatools.status.flow.trace.*
import com.zhjt.mogo_core_function_devatools.status.flow.trace.TracingImpl
import com.zhjt.mogo_core_function_devatools.status.model.StatusModel
import com.zhjt.mogo_core_function_devatools.status.ui.adapter.StatusAdapter
import com.zhjt.mogo_core_function_devatools.status.ui.diff.StatusDiffCallback
@@ -81,6 +84,7 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra
val old = adapter.data
val result = DiffUtil.calculateDiff(StatusDiffCallback(old, data.second))
adapter.data = data.second
Logger.d("TracingImpl", "old: ${old.find { it is TracingStatus }} => new: ${data.second.find { it is TracingStatus }}")
result.dispatchUpdatesTo(adapter)
}.also { observer = it })
}