diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt index b7bb0f8082..f790cbcde3 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt @@ -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? = 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? = 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 } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt index 98c35d7892..7e9d4fded7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt @@ -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): RecyclerView.Adapter() { + 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): 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): 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 -> "暂无轨迹" + } + } } } } \ No newline at end of file