[状态栏]修正wifi名称为unknowxx

This commit is contained in:
renwj
2022-05-27 19:56:24 +08:00
parent 5414978b23
commit 0a582e3645
2 changed files with 39 additions and 4 deletions

View File

@@ -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? = "") {
/**

View File

@@ -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) {