[状态栏]优化循迹/算路处理逻辑
This commit is contained in:
@@ -145,7 +145,25 @@ class CanStatus(var enabled: Boolean = false): Status() {
|
||||
*/
|
||||
class TracingStatus(var state: Tracing = UNKNOWN): Status() {
|
||||
|
||||
enum class Tracing(val code: String? = "") {
|
||||
enum class Tracing(val code: String? = "", var extra: Map<String, String>? = null) {
|
||||
|
||||
/**
|
||||
* 类型切换
|
||||
*/
|
||||
MAP_TRA_TYPE("IMAP_TRA_TYPE"),
|
||||
|
||||
|
||||
/**
|
||||
* 地图数据存在
|
||||
*/
|
||||
MAP_DATA_EXIST("IMAP_DATA_EXIST"),
|
||||
|
||||
|
||||
/**
|
||||
* 地图数据不存在
|
||||
*/
|
||||
MAP_DATA_NOT_EXIST("EMAP_DATA_NOT_EXIST"),
|
||||
|
||||
/**
|
||||
* 寻迹-已找到轨迹文件
|
||||
*/
|
||||
@@ -213,13 +231,50 @@ class TracingStatus(var state: Tracing = UNKNOWN): Status() {
|
||||
}
|
||||
|
||||
fun String.toState(): Tracing? {
|
||||
return when(this) {
|
||||
"IMAP_TRA_EXIST" -> TRACK_FINDED
|
||||
"IMAP_TRA_LOADED" -> TRACK_LOADED
|
||||
"EMAP_TRA_NOT_EXIST" -> TRACK_NOT_EXIST
|
||||
"EMAP_TRA_LOAD_FAILED" -> TRACK_LOAD_FAIL
|
||||
"IMAP_TRA_ROUTING" -> ROUTE_LOADED
|
||||
val ss = split("|")
|
||||
var code = ""
|
||||
if (ss.isNotEmpty()) {
|
||||
code = ss[0]
|
||||
}
|
||||
var extra: Map<String, String>? = null
|
||||
if (ss.size > 1) {
|
||||
|
||||
val sb = StringBuilder()
|
||||
for (i in 1 until ss.size) {
|
||||
sb.append(ss[i])
|
||||
sb.append(",")
|
||||
}
|
||||
if (sb.isNotEmpty()) {
|
||||
sb.setLength(sb.length - 1)
|
||||
}
|
||||
extra = mutableMapOf("extra" to sb.toString())
|
||||
}
|
||||
return when(code) {
|
||||
"IMAP_TRA_EXIST" -> TRACK_FINDED.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"IMAP_TRA_LOADED" -> TRACK_LOADED.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"EMAP_TRA_NOT_EXIST" -> TRACK_NOT_EXIST.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"EMAP_TRA_LOAD_FAILED" -> TRACK_LOAD_FAIL.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"IMAP_TRA_ROUTING" -> ROUTE_LOADED.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"EMAP_HADMAP_ENGINE_NO_ROUTING_INFO" -> ROUTE_FAILED
|
||||
"IMAP_TRA_TYPE" -> MAP_TRA_TYPE.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"MAP_DATA_EXIST" -> MAP_DATA_EXIST.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
"MAP_DATA_NOT_EXIST" -> MAP_DATA_NOT_EXIST.apply {
|
||||
this.extra = extra
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.widget.*
|
||||
import androidx.core.content.*
|
||||
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.util.*
|
||||
import com.zhjt.mogo_core_function_devatools.*
|
||||
import com.zhjt.mogo_core_function_devatools.R
|
||||
@@ -19,6 +20,10 @@ import kotlinx.coroutines.*
|
||||
|
||||
internal class StatusAdapter(val ctx: Context, var data: ArrayList<Status>): RecyclerView.Adapter<StatusViewHolder>() {
|
||||
|
||||
companion object {
|
||||
const val TAG = "StatusAdapter"
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StatusViewHolder =
|
||||
StatusViewHolder(LayoutInflater.from(ctx).inflate(R.layout.layout_status_bar_item, parent, false))
|
||||
|
||||
@@ -69,7 +74,7 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList<Status>): Rec
|
||||
}
|
||||
is TracingStatus -> {
|
||||
when(status.state) {
|
||||
ROUTE_FAILED, TRACK_LOAD_FAIL, TRACK_NOT_EXIST, TRACK_FINDED, UNKNOWN -> {
|
||||
MAP_DATA_NOT_EXIST, MAP_DATA_EXIST, MAP_TRA_TYPE, ROUTE_FAILED, TRACK_LOAD_FAIL, TRACK_NOT_EXIST, TRACK_FINDED, UNKNOWN -> {
|
||||
iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_trace_unkown)
|
||||
}
|
||||
TRACK_LOADED -> {
|
||||
@@ -116,7 +121,26 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList<Status>): Rec
|
||||
else ->
|
||||
"定位异常"
|
||||
}
|
||||
is TracingStatus -> "轨迹类型:${ if (status.state == TRACK_LOADED) "循迹" else if (status.state == ROUTE_LOADED) "自主算路" else "暂无轨迹" }"
|
||||
is TracingStatus -> {
|
||||
val extra = status.state.extra
|
||||
val extraDesc = if (extra != null && extra.isNotEmpty()) extra.values.joinToString(",") else ""
|
||||
Logger.d(TAG, "traceing_state: $status -> extra: $extraDesc :: extra: $extra")
|
||||
when(status.state) {
|
||||
//"轨迹类型:${ if (status.state == TRACK_LOADED) "循迹" else if (status.state == ROUTE_LOADED) "自主算路" else "暂无轨迹" }"
|
||||
MAP_TRA_TYPE -> {
|
||||
"暂无轨迹"
|
||||
}
|
||||
MAP_DATA_EXIST -> "地图数据存在,正在加载${if (extraDesc.isEmpty()) "" else "[$extraDesc]" }"
|
||||
MAP_DATA_NOT_EXIST -> "地图数据不存在${if (extraDesc.isEmpty()) "" else "[$extraDesc]"}"
|
||||
TRACK_FINDED -> "轨迹类型:循迹[已找到轨迹$extraDesc]"
|
||||
TRACK_LOADED -> "轨迹类型:循迹[加载成功$extraDesc]"
|
||||
TRACK_NOT_EXIST -> "轨迹类型:循迹[不存在$extraDesc]"
|
||||
TRACK_LOAD_FAIL -> "轨迹类型:循迹[加载失败$extraDesc]"
|
||||
ROUTE_LOADED -> "轨迹类型:自主算路[加载成功$extraDesc]"
|
||||
ROUTE_FAILED -> "轨迹类型:自主算路[加载失败$extraDesc]"
|
||||
UNKNOWN -> "暂无轨迹"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user