[状态栏]逻辑优化
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user