diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml
index 1e21997ac6..1aeb771c17 100644
--- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml
+++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml
@@ -107,7 +107,7 @@
app:layout_goneMarginEnd="40dp"
app:layout_goneMarginTop="@dimen/dp_236" />
-
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent" />
+ app:explorationUser="driver"
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:promptUser="driver" />
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_618"
+ android:layout_marginBottom="@dimen/dp_48"
+ app:layout_constraintBottom_toTopOf="@+id/toolsView"
+ app:layout_constraintStart_toStartOf="parent" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintLeft_toRightOf="@id/rtv_switch" />
+ app:layout_constraintBottom_toTopOf="@+id/smallMapView"
+ app:layout_constraintEnd_toEndOf="@+id/smallMapView"
+ app:layout_constraintStart_toStartOf="@+id/smallMapView" />
+
\ No newline at end of file
diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml
index b28c81d8cf..51b391e0dd 100644
--- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml
+++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml
@@ -255,7 +255,7 @@
app:layout_constraintBottom_toTopOf="@id/aciv_xiaozhi_normal"
app:layout_constraintEnd_toEndOf="parent" />
-
-
-
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml
index a8bb5e6ea0..55bd21768e 100644
--- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml
+++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml
@@ -266,7 +266,7 @@
android:layout_marginBottom="-80dp"
app:layout_constraintEnd_toEndOf="parent" />
- @null
- @null
- @color/app_window_background
- - false
+ - true
- false
- @style/Animation
diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
index 6d749ccdab..ca38830dba 100644
--- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
+++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
@@ -20,6 +20,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_AD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_ROUTE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_STATUS_QUERY_RESP
+import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_SYSTEM_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_V2N_EVENT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_VEHICLE
@@ -444,9 +445,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
} else {
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady = false
}
+
invokeAutopilotStatusRespByQuery(statusInfo)
}
+ @ChainLog(
+ linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_SOURCE_ADAS,
+ nodeAliasCode = CHAIN_CODE_ADAS_SYSTEM_STATUS,
+ paramIndexes = [0, 1]
+ )
override fun onSystemStatus(header: MessagePad.Header?, statusInf: SsmInfo.SsmStatusInf?) {
if (statusInf != null && statusInf.hasAutoPilotReady()) {
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady =
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 cfc532ad20..122054d504 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
@@ -166,6 +166,8 @@ class FSMStatus(var state: FSMStateCode, var desc: String = ""): Status(), IAuto
}
override fun isException(): Boolean = state == FSMStateCode.ExistError
+
+ fun hasFSMModule(): Boolean = (state == FSMStateCode.ExistNormal) || (state == FSMStateCode.ExistError)
}
/**
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt
index 7be0d877f5..f98d70fe28 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt
@@ -36,12 +36,12 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra
override fun onAttachedToWindow() {
super.onAttachedToWindow()
- val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second.filter { (it !is IAutopilotPreLaunchStatus) || (it is FSMStatus)}) }?.also { adapter -> rv.adapter = adapter }
+ val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second.filter { it !is IAutopilotPreLaunchStatus }) }?.also { adapter -> rv.adapter = adapter }
adapter?.let { _ ->
observer?.also { model.status.removeObserver(it) }
model.status.observeForever(Observer>> { data ->
val old = adapter.data
- val update = data.second.filter { (it !is IAutopilotPreLaunchStatus) || (it is FSMStatus) }
+ val update = data.second.filter { it !is IAutopilotPreLaunchStatus }
val result = DiffUtil.calculateDiff(StatusDiffCallback(old, update))
adapter.data = update
result.dispatchUpdatesTo(adapter)
diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle
index 29756c7395..381198ce98 100644
--- a/core/function-impl/mogo-core-function-hmi/build.gradle
+++ b/core/function-impl/mogo-core-function-hmi/build.gradle
@@ -69,6 +69,7 @@ dependencies {
// releaseImplementation rootProject.ext.dependencies.releaseleakcanary
implementation rootProject.ext.dependencies.arouter
implementation project(path: ':core:function-impl:mogo-core-function-map')
+ implementation project(':core:function-impl:mogo-core-function-devatools')
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.android_start_up
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneContainerView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneContainerView.kt
new file mode 100644
index 0000000000..f4c7284c75
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneContainerView.kt
@@ -0,0 +1,25 @@
+package com.mogo.eagle.core.function.hmi.bone
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.hmi.R
+
+class BoneContainerView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_bone_container, this, true)
+ initView()
+ }
+
+ private fun initView() {
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt
new file mode 100644
index 0000000000..f613a73661
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt
@@ -0,0 +1,111 @@
+package com.mogo.eagle.core.function.hmi.bone
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
+import kotlinx.android.synthetic.main.view_bone_tab.view.carInfoTabView
+import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchCarInfo
+import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchMore
+import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchMsgBox
+import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchReport
+import kotlin.properties.Delegates
+
+class BoneTabLayout @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ companion object{
+ private const val TAG = "BoneTabLayout"
+ }
+
+ private enum class TabType {
+ NONE,
+ CAR_INFO,
+ MSG_INFO,
+ REPORT_INFO,
+ MORE_INFO
+ }
+
+ private var tabType by Delegates.observable(TabType.NONE) { _, oldValue, newValue ->
+ CallerLogger.i("$M_HMI$TAG", "tabType old:$oldValue , new:$newValue")
+ if (oldValue != newValue) {
+ updateTab(oldValue, false)
+ updateTab(newValue, true)
+ } else {
+ updateTab(oldValue, false)
+ }
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_bone_tab, this, true)
+ initView()
+ }
+
+ private fun initView() {
+ tabSwitchCarInfo.setOnClickListener {
+ updateTabType(TabType.CAR_INFO)
+ }
+ tabSwitchMsgBox.setOnClickListener {
+ updateTabType(TabType.MSG_INFO)
+ }
+ tabSwitchReport.setOnClickListener {
+ updateTabType(TabType.REPORT_INFO)
+ }
+ tabSwitchMore.setOnClickListener {
+ updateTabType(TabType.MORE_INFO)
+ }
+ }
+
+ private fun updateTabType(changeType: TabType) {
+ tabType = if (tabType == changeType) {
+ TabType.NONE
+ } else {
+ changeType
+ }
+ }
+
+ private fun updateTab(tabType: TabType, check: Boolean) {
+ CallerLogger.i("$M_HMI$TAG", "updateTab tabType:$tabType , check:$check")
+ when (tabType) {
+ TabType.CAR_INFO -> {
+ tabSwitchCarInfo.switchTab(check)
+ carInfoTabView.visibility = if (check) VISIBLE else GONE
+ }
+
+ TabType.MSG_INFO -> {
+ tabSwitchMsgBox.switchTab(check)
+ if (check) {
+
+ } else {
+
+ }
+ }
+
+ TabType.REPORT_INFO -> {
+ tabSwitchReport.switchTab(check)
+ if (check) {
+
+ } else {
+
+ }
+ }
+
+ TabType.MORE_INFO -> {
+ tabSwitchMore.switchTab(check)
+ if (check) {
+
+ } else {
+
+ }
+ }
+
+ else -> {}
+ }
+ }
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTopStatusLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTopStatusLayout.kt
new file mode 100644
index 0000000000..e41748556a
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTopStatusLayout.kt
@@ -0,0 +1,51 @@
+package com.mogo.eagle.core.function.hmi.bone
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.content.ContextCompat
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.bone.status.StartAutoPilotStatusView
+import kotlinx.android.synthetic.main.view_bone_top_status.view.topStatusContainer
+
+class BoneTopStatusLayout @JvmOverloads constructor(
+ context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr),
+ StartAutoPilotStatusView.IStartAutoPilotStatusChanged {
+
+ companion object {
+ const val TAG = "BoneTopStatusLayout"
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_bone_top_status, this, true)
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ StartAutoPilotStatusView.addStatusChangedListener(TAG, this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ StartAutoPilotStatusView.removeStatusChangedListener(TAG)
+ }
+
+ override fun onStatusError() {
+ super.onStatusError()
+ context?.also {
+ topStatusContainer.background = ContextCompat.getDrawable(
+ it, R.drawable.bg_top_status_layout_error
+ )
+ }
+ }
+
+ override fun onStatusNormal() {
+ super.onStatusNormal()
+ context?.also {
+ topStatusContainer.background =
+ ContextCompat.getDrawable(it, R.drawable.bg_top_status_layout_normal)
+ }
+ }
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt
new file mode 100644
index 0000000000..55665aa178
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt
@@ -0,0 +1,62 @@
+package com.mogo.eagle.core.function.hmi.bone
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.hmi.R
+import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClick
+import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClickBg
+import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabDefault
+
+class TabSwitchView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ private var tabDefaultRes = -1
+ private var tabClickRes = -1
+ private var tabClickBgRes = -1
+
+ private var isCheck = false
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_tab_switch, this, true)
+ try {
+ val typedArray = context.obtainStyledAttributes(attrs, R.styleable.TabSwitch)
+ tabDefaultRes = typedArray.getResourceId(R.styleable.TabSwitch_defaultRes, -1)
+ tabClickRes = typedArray.getResourceId(R.styleable.TabSwitch_clickRes, -1)
+ tabClickBgRes = typedArray.getResourceId(R.styleable.TabSwitch_clickBgRes, -1)
+ typedArray.recycle()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ initView()
+ }
+
+ private fun initView() {
+ ivTabDefault.setImageResource(tabDefaultRes)
+ ivTabClick.setImageResource(tabClickRes)
+ ivTabClickBg.setImageResource(tabClickBgRes)
+ }
+
+ fun switchTab(isCheck: Boolean) {
+ if (isCheck != this.isCheck) {
+ this.isCheck = isCheck
+ notifyView()
+ }
+ }
+
+ private fun notifyView() {
+ if (isCheck) {
+ ivTabClick.visibility = View.VISIBLE
+ ivTabClickBg.visibility = View.VISIBLE
+ } else {
+ ivTabClick.visibility = View.GONE
+ ivTabClickBg.visibility = View.GONE
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt
new file mode 100644
index 0000000000..41e4ec6e90
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt
@@ -0,0 +1,264 @@
+package com.mogo.eagle.core.function.hmi.bone.status
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.content.ContextCompat
+import chassis.Chassis
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.kotlin.onClick
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.Logger
+import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.zhjt.mogo_core_function_devatools.status.StatusManager
+import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.BrakeStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.DoubleFlashStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.FSMStateCode
+import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.GearStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotPreLaunchStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.SpeedStatus
+import com.zhjt.mogo_core_function_devatools.status.entity.Status
+import com.zhjt.mogo_core_function_devatools.status.entity.SteerStatus
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.fSMStatusLayout
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_accelerator
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_brake
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_double_flash
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_steer
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.tv_gear
+import kotlinx.android.synthetic.main.view_start_autopilot_status.view.withoutFSMStatusLayout
+import java.util.concurrent.ConcurrentHashMap
+import java.util.concurrent.atomic.AtomicBoolean
+
+/**
+ * 自动驾驶相关的状态展示view
+ * 1, 有 FSM 模块:展示 FSM 的当前状态,启动自驾时人工干预主要由 FSM 拦截,非自驾/自驾 状态都展示异常
+ * 2,无 FSM 模块:展示 启动前 档位/方向盘/油门/刹车/双闪 等状态,人工干预由鹰眼判断拦截,鹰眼数据源为 CanAdapter,
+ * 如果当前在自动驾驶状态 则不显示人工干预异常状态
+ */
+class StartAutoPilotStatusView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr), StatusManager.IStatusListener {
+
+ companion object {
+ private const val TAG = "StartAutoPilotStatusView"
+ private val statusChangedListeners by lazy { ConcurrentHashMap() }
+ fun addStatusChangedListener(tag: String, listener: IStartAutoPilotStatusChanged) {
+ if (statusChangedListeners.containsKey(tag)) {
+ statusChangedListeners.remove(tag)
+ }
+ statusChangedListeners[tag] = listener
+ }
+
+ fun removeStatusChangedListener(tag: String) {
+ statusChangedListeners.remove(tag)
+ }
+ }
+
+ private val hasFSM by lazy { AtomicBoolean(false) }
+
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_start_autopilot_status, this, true)
+ initView()
+ }
+
+ private fun initView() {
+ // 默认展示 有 FSM 的情况,未知状态
+ changeStatusContainer(true)
+ handleFSM(FSMStatus(FSMStateCode.UnKnown, "未知"))
+ }
+
+ /**
+ * 根据是否有 FSM 切换展示的容器
+ */
+ private fun changeStatusContainer(hasFSMModule: Boolean) {
+ CallerLogger.i(TAG, "changeStatusContainer 切换展示,hasFSM=$hasFSMModule")
+ if (hasFSMModule) {
+ fSMStatusLayout?.visibility = View.VISIBLE
+ withoutFSMStatusLayout?.visibility = View.GONE
+ } else {
+ fSMStatusLayout?.visibility = View.GONE
+ withoutFSMStatusLayout?.visibility = View.VISIBLE
+ }
+ }
+
+ private fun handleFSM(status: FSMStatus) {
+ Logger.d(TAG, "--- handleFSM ---:${status.isException()}")
+ val lastHasFSM = hasFSM.get()
+ val newHasFSM = status.hasFSMModule()
+ hasFSM.set(newHasFSM)
+ if (lastHasFSM != newHasFSM) {
+ changeStatusContainer(status.hasFSMModule())
+ }
+
+ when (status.state) {
+ FSMStateCode.UnKnown -> {
+ fSMStatusLayout?.setOnClickListener(null)
+ fSMStatusLayout?.setImageDrawable(
+ ContextCompat.getDrawable(
+ context,
+ R.drawable.icon_fsm_status_bg_unknown
+ )
+ )
+ }
+
+ FSMStateCode.NotExist -> {
+ fSMStatusLayout?.setOnClickListener(null)
+ fSMStatusLayout?.setImageDrawable(
+ ContextCompat.getDrawable(
+ context,
+ R.drawable.icon_fsm_status_bg_unknown
+ )
+ )
+ }
+
+ FSMStateCode.ExistNormal -> {
+ fSMStatusLayout?.setOnClickListener(null)
+ fSMStatusLayout?.setImageDrawable(
+ ContextCompat.getDrawable(
+ context,
+ R.drawable.icon_fsm_status_bg_normal
+ )
+ )
+ }
+
+ FSMStateCode.ExistError -> {
+ // TODO
+ fSMStatusLayout?.onClick {
+ ToastUtils.showLong("onClick")
+ }
+ fSMStatusLayout?.setImageDrawable(
+ ContextCompat.getDrawable(
+ context,
+ R.drawable.icon_fsm_status_bg_error
+ )
+ )
+ }
+ }
+ notifyStatus(status.isException())
+ }
+
+ private fun handleWithoutFSM(status: Status) {
+ val isError =
+ status.isException() && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
+ Logger.d(TAG, "--- handleWithoutFSM ---: $isError")
+ when (status) {
+ is GearStatus -> {
+ val position = try {
+ Chassis.GearPosition.valueOf(status.value)
+ } catch (ignore: Throwable) {
+ Chassis.GearPosition.GEAR_NONE
+ }
+ if (tv_gear?.isEnabled == true) {
+ tv_gear?.isEnabled = false
+ }
+
+ when (position) {
+ Chassis.GearPosition.GEAR_N -> {
+ tv_gear.isEnabled = isError
+ tv_gear.text = "N"
+ }
+
+ Chassis.GearPosition.GEAR_R -> {
+ tv_gear.isEnabled = isError
+ tv_gear.text = "R"
+ }
+
+ Chassis.GearPosition.GEAR_P -> {
+ tv_gear.isEnabled = isError
+ tv_gear.text = "P"
+ }
+
+ Chassis.GearPosition.GEAR_D -> {
+ tv_gear.isEnabled = isError
+ tv_gear.text = "D"
+ }
+
+ Chassis.GearPosition.GEAR_NONE -> {
+ tv_gear.isEnabled = false
+ tv_gear.text = ""
+ }
+
+ else -> {}
+ }
+ }
+
+ is AcceleratorStatus -> {
+ iv_accelerator?.isSelected = isError
+ }
+
+ is BrakeStatus -> {
+ iv_brake?.isSelected = isError
+ }
+
+ is DoubleFlashStatus -> {
+ iv_double_flash?.isSelected = isError
+ }
+
+ is SteerStatus -> {
+ iv_steer?.isSelected = isError
+ }
+
+ is SpeedStatus -> {
+ // TODO
+ }
+
+ else -> {
+ Logger.d(TAG, "other state: $status")
+ }
+ }
+ notifyStatus(isError)
+ }
+
+ private fun notifyStatus(isError: Boolean) {
+ statusChangedListeners.values.forEach { itx ->
+ if (isError) {
+ itx.onStatusError()
+ } else {
+ itx.onStatusNormal()
+ }
+ }
+ }
+
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ StatusManager.addListener(TAG, this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ StatusManager.removeListener(TAG)
+ }
+
+ /**
+ * @param changed: 变化的数据
+ * @param all: 所有状态数据
+ */
+ override fun onStatusChanged(changed: List, all: List) {
+ changed.filter { it is IAutopilotPreLaunchStatus }.forEach { status ->
+ when (status) {
+ is FSMStatus -> {
+ handleFSM(status)
+ }
+
+ else -> {
+ handleWithoutFSM(status)
+ }
+ }
+ }
+ }
+
+ interface IStartAutoPilotStatusChanged {
+ fun onStatusNormal() {}
+ fun onStatusError() {}
+ }
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt
new file mode 100644
index 0000000000..fc13c32370
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt
@@ -0,0 +1,243 @@
+package com.mogo.eagle.core.function.hmi.bone.tab
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.commons.storage.SharedPrefsMgr
+import com.mogo.eagle.core.data.app.AppConfigInfo
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
+import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
+import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
+import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
+import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
+import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
+import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
+import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
+import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.ui.tools.OfflineMapDialog
+import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
+import com.mogo.eagle.core.utilcode.util.AppUtils
+import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+import com.mogo.map.MogoData
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADMapVersion
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersion
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarExit
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarLoginInfo
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarNo
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvHDMapUpdate
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPADUpdate
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPadVersion
+import kotlinx.android.synthetic.main.view_car_info_tab.view.tvSnInfo
+import mogo.telematics.pad.MessagePad
+import system_master.SsmInfo
+import system_master.SystemStatusInfo
+
+private fun String.parsePlateNo(): String {
+ return substring(0, 2) + " " + substring(2)
+}
+
+private fun String.parsePhoneNo(): String {
+ return take(3) + "****" + takeLast(4)
+}
+
+class CarInfoTabView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoCheckAutoPilotBtnListener,
+ IMoGoAutopilotStatusListener, IMoGoDevaToolsListener, IMoGoAutopilotCarConfigListener {
+
+ companion object {
+ private const val TAG = "CarInfoTabView"
+ }
+
+
+ private var loginOut: (() -> Unit)? = null
+
+ @Volatile
+ private var isHDCached = false
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.view_car_info_tab, this, true)
+ initView()
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ CallerHmiListenerManager.addListener(TAG, this)
+ CallerAutoPilotStatusListenerManager.addListener(TAG, this)
+ CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
+ CallerDevaToolsListenerManager.addListener(TAG, this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerHmiListenerManager.removeListener(TAG)
+ CallerAutoPilotStatusListenerManager.removeListener(TAG)
+ CallerDevaToolsListenerManager.removeListener(TAG)
+ }
+
+ private fun initView() {
+ showCurrentPadVersion()
+ showCurrentAdVersion()
+ updateAdHdMapVersion()
+
+ tvSnInfo.text = SharedPrefsMgr.getInstance().sn
+
+ if (AppConfigInfo.plateNumber.isNotEmpty()) {
+ val plateNo = AppConfigInfo.plateNumber
+ tvCarNo.text = plateNo.parsePlateNo()
+ }
+
+ tvCarExit.setOnClickListener {
+ loginOut?.invoke()
+ }
+
+ //鹰眼版本 检查更新
+ tvPADUpdate.setOnClickListener {
+ HmiActionLog.hmiAction(
+ "${SceneConstant.M_HMI}${TAG}",
+ "pad version view clicked"
+ )
+ val provider = CallerDevaToolsManager.upgradeProvider()
+ if (provider?.isDownloading() == true) {
+ ToastUtils.showShort("正在下载最新版本,请稍候再试...")
+ return@setOnClickListener
+ }
+ CallerDevaToolsManager.queryAppUpgrade()
+ }
+
+ //高精地图 检查更新
+ tvHDMapUpdate.setOnClickListener {
+ HmiActionLog.hmiAction(
+ "${SceneConstant.M_HMI}${TAG}",
+ mapOf("isHDCached" to isHDCached)
+ )
+ if (isHDCached) { // 已缓存
+ ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded))
+ } else {// 未缓存
+ if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode
+ if ((CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude <= 0.0 && CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude <= 0.0)) {// 未拿到高精的经纬度
+ ToastUtils.showShort(resources.getString(R.string.location_try_again))
+ } else { // 拿到了高精的经纬度
+ val dialog = OfflineMapDialog(context)
+ dialog.location =
+ CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
+ dialog.show()
+ }
+ } else {// 拿到高德的cityCode
+ OfflineMapDialog(context).show()
+ }
+ }
+ }
+
+ MogoData.mogoMapData.get()?.isCityDataCached {
+ updateHDDataCacheStatus(it)
+ }
+ }
+
+ private fun showCurrentPadVersion() {
+ tvPadVersion.text = tvPadVersion.text.toString() + AppUtils.getAppVersionName()
+ }
+
+ fun setLoginInfo(loginNo: String) {
+ if (loginNo.isNotEmpty()) {
+ tvCarLoginInfo.text = loginNo.parsePhoneNo()
+ } else {
+ tvCarLoginInfo.text = ""
+ }
+ }
+
+ fun setCarNo(carNo: String) {
+ // 监听工控的车牌信息,防止调试跳过无车牌内容(链接先后顺序不一致也会导致数据显示异常)
+ if (carNo.isNotEmpty()) {
+ if (tvCarNo.text.isNotEmpty() && tvCarNo.text == carNo) {
+ CallerLogger.i("$M_HMI$TAG", "已存在车牌号")
+ return
+ }
+ tvCarNo.visibility = VISIBLE
+ tvCarNo.text = carNo.parsePlateNo()
+ } else {
+ tvCarNo.visibility = GONE
+ tvCarNo.text = ""
+ }
+ }
+
+ override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
+ super.onAutopilotCarConfig(carConfigResp)
+ carConfigResp.plateNumber?.let {
+ if (tvCarNo.text.isNotEmpty() && tvCarNo.text == it) {
+ return
+ }
+ tvCarNo.visibility = VISIBLE
+ tvCarNo.text = it.parsePlateNo()
+ }
+ }
+
+ fun loginOut(loginOut: (() -> Unit)) {
+ this.loginOut = loginOut
+ }
+
+ override fun updateHDDataCacheStatus(isCached: Boolean) {
+ isHDCached = isCached
+ }
+
+ private fun showCurrentAdVersion() {
+ UiThreadHandler.post {
+ CallerAutoPilotStatusListenerManager.getDockerVersion()?.let {
+ tvADVersion.text = tvADVersion.text.toString() + it
+ }
+ }
+ }
+
+ override fun onAutopilotDockerInfo(dockerVersion: String) {
+ super.onAutopilotDockerInfo(dockerVersion)
+ showCurrentAdVersion()
+ }
+
+ private fun updateAdHdMapVersion() {
+ if (AppConfigInfo.adHdMapVersion.isNotEmpty()) {
+ tvADMapVersion.text = tvADMapVersion.text.toString() + AppConfigInfo.adHdMapVersion
+ }
+ }
+
+ override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "hdMapVer=" + status.hdMapVer)
+ //hdMapVer返回示例:/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改,对原609场景修改为6091、6092、6201、 6202四种细分场景,并对通往园区路口改为619
+ if (status.hdMapVer != null && status.hdMapVer.isNotEmpty()) {
+ //对地图版本进行截取
+ val city = status.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
+ val version = status.hdMapVer.substringAfter("$city|").substringBefore("|")
+ AppConfigInfo.adHdMapVersion = "${city}_${version}"
+ updateAdHdMapVersion()
+ }
+
+ }
+
+ /**
+ * 定频SSM接口
+ * 1hz hq m1 MAP350开始支持,其他车型MAP360开始支持
+ * 定频SSM接入后 onStatusQueryResp 状态查询应答接口将弃用
+ * @param statusInf 数据
+ */
+ override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) {
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "hdMapVer=" + statusInf.hdMapVer)
+ //hdMapVer返回示例:/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改,对原609场景修改为6091、6092、6201、 6202四种细分场景,并对通往园区路口改为619
+ if (statusInf.hdMapVer != null && statusInf.hdMapVer.isNotEmpty()) {
+ //对地图版本进行截取
+ val city = statusInf.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
+ val version = statusInf.hdMapVer.substringAfter("$city|").substringBefore("|")
+ AppConfigInfo.adHdMapVersion = "${city}_${version}"
+ updateAdHdMapVersion()
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
index 83539c43d3..cad2aabef1 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
@@ -1,11 +1,9 @@
package com.mogo.eagle.core.function.hmi.ui
import android.content.Context
-import android.telecom.Call
import android.text.TextUtils
import android.view.Gravity
import android.view.ViewGroup
-import android.view.WindowManager
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.alibaba.android.arouter.facade.annotation.Route
@@ -32,7 +30,6 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
import com.mogo.eagle.core.function.hmi.ui.camera.RoadVideoDialog
-import com.mogo.eagle.core.function.hmi.ui.greenwave.GreenWaveView
import com.mogo.eagle.core.function.hmi.ui.lookaround.M1LookAroundView
import com.mogo.eagle.core.function.hmi.ui.notice.DispatchDialogManager
import com.mogo.eagle.core.function.hmi.ui.notice.NoticeCheckDialog
@@ -49,7 +46,6 @@ import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager
import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow
-import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt
deleted file mode 100644
index 68947a6019..0000000000
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/switch/DemoModeHiddenSwitch.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mogo.eagle.core.function.hmi.ui.switch
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.View
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-
-class DemoModeHiddenSwitch(context: Context, attrs: AttributeSet?) : View(context, attrs) {
-
- init {
- isClickable = true
- setOnClickListener {
- //只在司机端设置美化模式开关功能
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- //单次查询,是否有行程信息(订单进行中时点击不生效),autopilotControlParameters为null代表不处于自动驾驶状态下
- if (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().autopilotControlParameters == null) {
- FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
- CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
- if (!FunctionBuildConfig.isDemoMode) {
- //关闭美化模式时,通知工控机
- CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt
similarity index 96%
rename from core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt
rename to core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt
index 97975280d0..368d5fb89a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt
@@ -1,8 +1,7 @@
-package com.mogo.eagle.core.function.hmi.ui.map
+package com.mogo.eagle.core.function.hmi.ui.tools
import android.annotation.SuppressLint
import android.content.Context
-import android.os.Looper
import android.view.View
import android.widget.ImageView
import android.widget.ProgressBar
@@ -13,12 +12,8 @@ import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
-import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
-import com.mogo.eagle.core.function.hmi.ui.widget.SystemVersionView
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
-import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.map.MogoData.Companion.mogoMapData
import me.jessyan.autosize.utils.AutoSizeUtils
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/greenwave/GreenWaveView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/GreenWaveView.kt
similarity index 99%
rename from core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/greenwave/GreenWaveView.kt
rename to core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/GreenWaveView.kt
index 806c1c4aca..c7a9d7a643 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/greenwave/GreenWaveView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/GreenWaveView.kt
@@ -1,4 +1,4 @@
-package com.mogo.eagle.core.function.hmi.ui.greenwave
+package com.mogo.eagle.core.function.hmi.ui.widget
import android.content.Context
import android.util.AttributeSet
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
index 41b7ba8c83..8b4e320bed 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
@@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.hmi.ui.widget
import android.content.Context
import android.util.AttributeSet
-import android.util.Log
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
@@ -19,15 +18,13 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.hmi.R
-import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog
+import com.mogo.eagle.core.function.hmi.ui.tools.OfflineMapDialog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.map.MogoData.Companion.mogoMapData
import kotlinx.android.synthetic.main.view_system_version.view.*
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.withContext
import system_master.SsmInfo
import system_master.SystemStatusInfo
@@ -56,6 +53,7 @@ class SystemVersionView @JvmOverloads constructor(
private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间
private var currentProgress: Int = -1 //当前已下载包体大小
+ @Volatile
private var isHDCached = false
init {
@@ -70,7 +68,7 @@ class SystemVersionView @JvmOverloads constructor(
//鹰眼版本视图点击事件
ivPadVersion.setOnClickListener {
- hmiAction("$M_HMI$$TAG", "pad version view clicked")
+ hmiAction("$M_HMI$TAG", "pad version view clicked")
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_item.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_item.png
new file mode 100644
index 0000000000..f64a10ace6
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_item.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_switch.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_switch.png
new file mode 100644
index 0000000000..5ea67d1d2f
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_switch.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_view_top.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_view_top.png
new file mode 100644
index 0000000000..921fd9cdf4
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bg_tab_view_top.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bone_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bone_bg.png
new file mode 100644
index 0000000000..327146e713
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bone_bg.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_red_notice.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_red_notice.png
new file mode 100644
index 0000000000..ead29a385c
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_red_notice.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info.png
new file mode 100644
index 0000000000..1a454cd10a
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info_click.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info_click.png
new file mode 100644
index 0000000000..823bc78ed4
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_car_info_click.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_click_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_click_bg.png
new file mode 100644
index 0000000000..9bac73ec11
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_click_bg.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more.png
new file mode 100644
index 0000000000..6c415b966b
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more_click.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more_click.png
new file mode 100644
index 0000000000..d3edff78b1
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_more_click.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box.png
new file mode 100644
index 0000000000..20f1c3d54e
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box_click.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box_click.png
new file mode 100644
index 0000000000..8fd7c25e70
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_msg_box_click.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report.png
new file mode 100644
index 0000000000..a5d71e87c2
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report_click.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report_click.png
new file mode 100644
index 0000000000..1f24941980
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_tab_report_click.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_error.png
new file mode 100644
index 0000000000..e6aca0cbac
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_normal.png
new file mode 100644
index 0000000000..98100cc9fe
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_top_status_layout_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_error.png
new file mode 100644
index 0000000000..64d2b1e585
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_normal.png
new file mode 100644
index 0000000000..b9c99cb2e8
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_unknown.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_unknown.png
new file mode 100644
index 0000000000..343ac036b7
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_status_bg_unknown.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_error.png
new file mode 100644
index 0000000000..e79245a482
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_normal.png
new file mode 100644
index 0000000000..9a1b10524e
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_no_fsm_status_bg_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_error.png
new file mode 100644
index 0000000000..249a739fb6
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_normal.png
new file mode 100644
index 0000000000..5bef6918b1
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_accelerator_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_error.png
new file mode 100644
index 0000000000..51c306c78f
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_normal.png
new file mode 100644
index 0000000000..0bb5fb3f97
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_brake_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_error.png
new file mode 100644
index 0000000000..e20a91034b
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_normal.png
new file mode 100644
index 0000000000..c8b3c442e8
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_double_flash_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_error.png
new file mode 100644
index 0000000000..2f0c84521b
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_normal.png
new file mode 100644
index 0000000000..9157dc77f5
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_gear_bg_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_error.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_error.png
new file mode 100644
index 0000000000..0ff6384c69
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_error.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_normal.png
new file mode 100644
index 0000000000..dad7e453d2
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_status_steer_normal.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_accelerator.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_accelerator.xml
new file mode 100644
index 0000000000..1a94b5b223
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_accelerator.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_brake.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_brake.xml
new file mode 100644
index 0000000000..729338288f
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_brake.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_double_flash.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_double_flash.xml
new file mode 100644
index 0000000000..23535cadb3
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_double_flash.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_gear.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_gear.xml
new file mode 100644
index 0000000000..e41543ee27
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_gear.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_steer.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_steer.xml
new file mode 100644
index 0000000000..dedd6d6cdc
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_autopilot_status_steer.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_tab_car_no.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_tab_car_no.xml
new file mode 100644
index 0000000000..4325856259
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_tab_car_no.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_tab_car_info.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_tab_car_info.xml
new file mode 100644
index 0000000000..6dff28022f
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_tab_car_info.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml
new file mode 100644
index 0000000000..4ce289e26c
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml
new file mode 100644
index 0000000000..948ba2316c
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml
new file mode 100644
index 0000000000..ce82045396
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml
new file mode 100644
index 0000000000..7f3d0718b3
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_start_autopilot_status.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_start_autopilot_status.xml
new file mode 100644
index 0000000000..99c3791b45
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_start_autopilot_status.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tab_switch.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tab_switch.xml
new file mode 100644
index 0000000000..fca451ec7d
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tab_switch.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml
index 32f3b7de6e..8923ff5bec 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml
@@ -152,4 +152,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml
index 29f5f47f65..d4e789045a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml
@@ -16,7 +16,9 @@
#3700B3
#03DAC5
#000000
+ #B3000000
#8F0005
+ #2EACFF
#FF0006
#0099dd
#FFFFFF
@@ -27,6 +29,7 @@
#252B3F
#131415
#B2BED9
+ #FF1943
#27FFFFFF
#1E111111
#FF213757
@@ -47,6 +50,7 @@
#FF333333
#FFCCCCCC
#80FFFFFF
+ #CCFFFFFF
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
index 21091c782c..1a533a43cd 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
@@ -2,6 +2,18 @@
mogo-core-function-hmi
查看
+ 我的车辆
+ 登陆信息
+ 退出
+ 车辆绑定
+ 版本信息
+ 设备SN
+ PAD:
+ AD:
+ HDMAP:
+ ADMAP:
+ 检查更新
+
最小化
日志
输入想要过滤的关键字
diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt
index aa39533ce7..f0c53e67a8 100644
--- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt
+++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt
@@ -148,17 +148,20 @@ class HttpDnsStartUp : AndroidStartup(), IMoGoCloudListener {
} else {
clientConfig.serviceAppId = "com.mogo.launcher"
}
- // 设置AI云平台分配给三方应用的签名密钥,需要从AI云平台申请
+ // 设置AI云平台分配给三方应用的签名密钥,需要从AI云平台申请ert
// 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备)
// TODO 现在这块逻辑因为网约车业务那后台的限制,还没有更换,条件成熟后替换为 DeviceIdUtils.getWidevineIDWithMd5(context)
// 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端
- if (ProcessUtils.getCurrentProcessName().contains(":passenger")) {
+ if (ProcessUtils.getCurrentProcessName().contains("passenger")) {
clientConfig.thirdPartyDeviceId = DeviceUtils.getDeviceSN() + "_passenger"
+ CallerLogger.i("$M_MAIN$TAG", "emArrow passenger sn : ${DeviceUtils.getDeviceSN()} + _passenger")
+ clientConfig.secretKey = "DLtjkFhV1lEZqLRnUs6OCFS0luP8S0mG"
} else {
clientConfig.thirdPartyDeviceId = DeviceUtils.getDeviceSN()
+ //设置长链接的secretKey 通过SHA1和包名找中台服务生成,后续包名分渠道,需要做对应操作
+ CallerLogger.i("$M_MAIN$TAG", "emArrow sn : ${DeviceUtils.getDeviceSN()}")
+ clientConfig.secretKey = "YMj2VFDFxJ3Q4gNoZceJ"
}
- //设置长链接的secretKey 通过SHA1和包名找中台服务生成,后续包名分渠道,需要做对应操作
- clientConfig.secretKey = "YMj2VFDFxJ3Q4gNoZceJ"
// clientConfig.secretKey = "n48AlVufihvMDWgzwHX42yzSgiWaad6v"
clientConfig.iHttpCurrentLocation = object : ICurrentLocation {
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
index 711da1b560..8eeabaea5b 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
@@ -67,6 +67,7 @@ class ChainConstant {
const val CHAIN_CODE_ADAS_P_OBJECTS = "CHAIN_CODE_ADAS_P_OBJECTS"
const val CHAIN_CODE_ADAS_P_ACTIONS = "CHAIN_CODE_ADAS_P_ACTIONS"
const val CHAIN_CODE_ADAS_STATUS_QUERY_RESP = "CHAIN_CODE_ADAS_STATUS_QUERY_RESP"
+ const val CHAIN_CODE_ADAS_SYSTEM_STATUS = "CHAIN_CODE_ADAS_SYSTEM_STATUS"
const val CHAIN_CODE_ADAS_PARALLEL = "CHAIN_CODE_ADAS_PARALLEL"
const val CHAIN_CODE_ADAS_MAP_PARAM = "CHAIN_CODE_ADAS_MAP_PARAM"
const val CHAIN_CODE_ADAS_V2N_EVENT = "CHAIN_CODE_ADAS_V2N_EVENT"
diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml
index a4e640e404..0eacc22ee8 100644
--- a/core/mogo-core-res/src/main/res/values/dimens.xml
+++ b/core/mogo-core-res/src/main/res/values/dimens.xml
@@ -1028,18 +1028,24 @@
1000dp
1003dp
1017dp
+ 1046dp
1055dp
1090dp
1092dp
1100dp
1114dp
1125dp
+ 1128dp
+ 1137dp
+ 1158dp
1170dp
1200dp
+ 1241dp
1250dp
1261dp
1300dp
1373dp
+ 1386dp
1600dp
1860dp
1920dp
diff --git a/gradle.properties b/gradle.properties
index c6bc8a5c1e..fef60d6de1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -81,7 +81,7 @@ MOGO_LOCATION_VERSION=1.4.7.38
MOGO_TELEMATIC_VERSION=1.4.7.38
######## MogoAiCloudSDK Version ########
# 自研地图
-MAP_SDK_VERSION=3.4.0.6
+MAP_SDK_VERSION=3.4.1.2
MAP_SDK_DATA_VERSION=1.0.0.9
MAP_SDK_OPERATION_VERSION=1.1.4.1
# websocket
diff --git a/libraries/mapmodule/build.gradle b/libraries/mapmodule/build.gradle
index 287e5d161b..87fe9afa20 100644
--- a/libraries/mapmodule/build.gradle
+++ b/libraries/mapmodule/build.gradle
@@ -65,7 +65,7 @@ dependencies {
implementation 'com.zhidaoauto.map:net:1.0.1'
- implementation "com.zhidaoauto.machine:mapcore:3.4.1.2"
+ implementation "com.zhidaoauto.machine:mapcore:${MAP_SDK_VERSION}"
implementation "com.zhidaoauto.machine:mapdata:${MAP_SDK_DATA_VERSION}"
}