[状态栏]修正wifi名称为unknowxx
This commit is contained in:
@@ -26,7 +26,7 @@ internal class IpcStatus(val enabled: Boolean = false): Status() {
|
||||
}
|
||||
}
|
||||
|
||||
internal class NetStatus(val enabled: Boolean = false, val name: String? = null, val speed: Speed? = null): Status() {
|
||||
internal class NetStatus(val enabled: Boolean = false, var name: String? = null, val speed: Speed? = null): Status() {
|
||||
class Speed(val tx: Int, val rx: Int) {
|
||||
|
||||
override fun toString(): String {
|
||||
@@ -81,7 +81,7 @@ internal class GpsStatus(val enabled: Boolean = false, val isGranted: Boolean =
|
||||
/**
|
||||
* RTK/GNSS定位状态
|
||||
*/
|
||||
internal class RTKStatus(val enabled: Boolean = false): Status() {
|
||||
internal class RTKStatus(var enabled: Boolean = false): Status() {
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (javaClass != other?.javaClass) return false
|
||||
@@ -98,7 +98,7 @@ internal class RTKStatus(val enabled: Boolean = false): Status() {
|
||||
/**
|
||||
* Can总线
|
||||
*/
|
||||
internal class CanStatus(val enabled: Boolean = false): Status() {
|
||||
internal class CanStatus(var enabled: Boolean = false): Status() {
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (javaClass != other?.javaClass) return false
|
||||
@@ -121,7 +121,7 @@ internal class CanStatus(val enabled: Boolean = false): Status() {
|
||||
/**
|
||||
* 寻迹/算路/未知
|
||||
*/
|
||||
internal class TracingStatus(val state: Tracing): Status() {
|
||||
internal class TracingStatus(var state: Tracing): Status() {
|
||||
|
||||
enum class Tracing(val code: String? = "") {
|
||||
/**
|
||||
|
||||
@@ -42,6 +42,7 @@ internal class StatusModel : ViewModel() {
|
||||
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) }
|
||||
fixData(nv)
|
||||
val data = Pair(getExceptionStatus(nv), nv)
|
||||
old.set(data)
|
||||
Log.d(TAG, "status: $s")
|
||||
@@ -50,6 +51,40 @@ internal class StatusModel : ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun fixData(data: ArrayList<Status>) {
|
||||
var netStatus: NetStatus? = null
|
||||
var gpsStatus: GpsStatus? = null
|
||||
for (d in data) {
|
||||
if (d is NetStatus) {
|
||||
netStatus = d
|
||||
}
|
||||
if (d is GpsStatus) {
|
||||
gpsStatus = d
|
||||
}
|
||||
}
|
||||
|
||||
if (netStatus != null && !netStatus.enabled) {
|
||||
for (i in data) {
|
||||
when(i) {
|
||||
is RTKStatus ->
|
||||
i.enabled = false
|
||||
is CanStatus ->
|
||||
i.enabled = false
|
||||
is TracingStatus ->
|
||||
i.state = UNKNOWN
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (netStatus != null && gpsStatus != null) {
|
||||
val wifiName = netStatus.name
|
||||
if (!gpsStatus.enabled || !gpsStatus.isGranted || wifiName != null && wifiName.startsWith("unknow")) {
|
||||
netStatus.name = "Wi-Fi"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getExceptionStatus(l: ArrayList<Status>): Status? {
|
||||
var ret: Status? = null
|
||||
for (s in l) {
|
||||
|
||||
Reference in New Issue
Block a user