[状态栏]逻辑优化

This commit is contained in:
renwj
2022-05-27 12:08:22 +08:00
parent 9150b3f40a
commit 94588078f3
3 changed files with 7 additions and 11 deletions

View File

@@ -1,7 +1,6 @@
package com.zhjt.mogo_core_function_devatools.status
import android.content.*
import android.util.*
import android.view.*
import androidx.core.view.*
import androidx.lifecycle.*
@@ -10,7 +9,6 @@ import androidx.lifecycle.Lifecycle.Event.ON_CREATE
import androidx.lifecycle.Lifecycle.Event.ON_DESTROY
import com.mogo.eagle.core.utilcode.kotlin.*
import com.zhjt.mogo_core_function_devatools.ext.*
import com.zhjt.mogo_core_function_devatools.status.entity.*
import com.zhjt.mogo_core_function_devatools.status.entity.CanStatus
import com.zhjt.mogo_core_function_devatools.status.entity.GpsStatus
import com.zhjt.mogo_core_function_devatools.status.entity.IpcStatus
@@ -24,7 +22,6 @@ import com.zhjt.mogo_core_function_devatools.status.flow.can.CanImpl
import com.zhjt.mogo_core_function_devatools.status.flow.gps.GpsImpl
import com.zhjt.mogo_core_function_devatools.status.flow.ipc.IpcImpl
import com.zhjt.mogo_core_function_devatools.status.flow.nets.NetsImpl
import com.zhjt.mogo_core_function_devatools.status.flow.rtk.*
import com.zhjt.mogo_core_function_devatools.status.flow.rtk.RTKImpl
import com.zhjt.mogo_core_function_devatools.status.flow.trace.TracingImpl
import com.zhjt.mogo_core_function_devatools.status.ui.*
@@ -78,7 +75,6 @@ object StatusManager {
hidePop?.invoke()
val content = StatusView(model, ctx)
content.doOnAttach {
Log.d("OOOO", "--- onAttach -----")
for (f in flows) {
f.onCreate()
}
@@ -93,6 +89,9 @@ object StatusManager {
}
private fun onDestroy(ctx: Context) {
flows.forEach {
it.onDestroy()
}
flows.clear()
hidePop?.invoke()
}

View File

@@ -30,7 +30,7 @@ internal class StatusModel : ViewModel() {
val status: MutableLiveData<Pair<Status?, ArrayList<Status>>> = MutableLiveData()
private val preValue by lazy { AtomicReference<Pair<Status?, ArrayList<Status>>>() }
private val old by lazy { AtomicReference<Pair<Status?, ArrayList<Status>>>() }
init {
@@ -38,11 +38,11 @@ internal class StatusModel : ViewModel() {
}
fun update(s: Status) {
synchronized(preValue) {
val v = preValue.get()?.second ?: status.value?.second ?: throw IllegalStateException("live data can't be null.")
synchronized(old) {
val v = old.get()?.second ?: status.value?.second ?: throw IllegalStateException("live data can't be null.")
val nv = ArrayList(v).also { it.updateOrInsert(s) }
val data = Pair(getExceptionStatus(nv), nv)
preValue.set(data)
old.set(data)
status.postValue(data)
}
}

View File

@@ -15,7 +15,6 @@ import androidx.recyclerview.widget.*
import com.mogo.eagle.core.utilcode.kotlin.*
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.*
import com.zhjt.mogo_core_function_devatools.status.entity.Status
import com.zhjt.mogo_core_function_devatools.status.model.StatusModel
import com.zhjt.mogo_core_function_devatools.status.ui.adapter.StatusAdapter
@@ -75,8 +74,6 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra
val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second) }?.also { adapter -> itx.adapter = adapter }
adapter?.let { _ ->
model.status.observeForever(Observer<Pair<Status?, ArrayList<Status>>> { data ->
Log.d("OOOO", "--- observeForever -----")
if (data.first != null) {
dot.visibility = View.VISIBLE
} else {