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-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 index 9025aac49b..f613a73661 100644 --- 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 @@ -5,6 +5,9 @@ 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 @@ -17,6 +20,10 @@ class BoneTabLayout @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr) { + companion object{ + private const val TAG = "BoneTabLayout" + } + private enum class TabType { NONE, CAR_INFO, @@ -26,6 +33,7 @@ class BoneTabLayout @JvmOverloads constructor( } 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) @@ -58,47 +66,45 @@ class BoneTabLayout @JvmOverloads constructor( tabType = if (tabType == changeType) { TabType.NONE } else { - TabType.CAR_INFO + 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) - if(check){ - - }else{ - - } + carInfoTabView.visibility = if (check) VISIBLE else GONE } TabType.MSG_INFO -> { tabSwitchMsgBox.switchTab(check) - if(check){ + if (check) { - }else{ + } else { } } TabType.REPORT_INFO -> { tabSwitchReport.switchTab(check) - if(check){ + if (check) { - }else{ + } else { } } TabType.MORE_INFO -> { tabSwitchMore.switchTab(check) - if(check){ + if (check) { - }else{ + } else { } } + else -> {} } } 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 index 9c088e9e2a..fc13c32370 100644 --- 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 @@ -4,15 +4,240 @@ 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){ +) : 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/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 1d1b659df3..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 @@ -53,6 +53,7 @@ class SystemVersionView @JvmOverloads constructor( private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间 private var currentProgress: Int = -1 //当前已下载包体大小 + @Volatile private var isHDCached = false init { @@ -67,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/bone_tab_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bone_tab_bg.png deleted file mode 100644 index 68bff3e346..0000000000 Binary files a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bone_tab_bg.png and /dev/null 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/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/layout/view_bone_tab.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml index 0b557c5c29..948ba2316c 100644 --- 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 @@ -1,36 +1,33 @@ + app:layout_constraintTop_toTopOf="parent" /> @@ -41,10 +38,9 @@ android:layout_height="@dimen/dp_140" android:layout_marginStart="@dimen/dp_40" android:layout_marginTop="@dimen/dp_20" - android:elevation="10dp" - app:defaultRes="@drawable/icon_tab_car_info" - app:clickRes="@drawable/icon_tab_car_info_click" app:clickBgRes="@drawable/icon_tab_click_bg" + app:clickRes="@drawable/icon_tab_car_info_click" + app:defaultRes="@drawable/icon_tab_car_info" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -53,9 +49,9 @@ android:layout_width="@dimen/dp_220" android:layout_height="@dimen/dp_140" android:layout_marginTop="@dimen/dp_20" - app:defaultRes="@drawable/icon_tab_msg_box" - app:clickRes="@drawable/icon_tab_msg_box_click" app:clickBgRes="@drawable/icon_tab_click_bg" + app:clickRes="@drawable/icon_tab_msg_box_click" + app:defaultRes="@drawable/icon_tab_msg_box" app:layout_constraintLeft_toRightOf="@+id/tabSwitchCarInfo" app:layout_constraintTop_toTopOf="parent" /> @@ -64,9 +60,9 @@ android:layout_width="@dimen/dp_220" android:layout_height="@dimen/dp_140" android:layout_marginTop="@dimen/dp_20" - app:defaultRes="@drawable/icon_tab_report" - app:clickRes="@drawable/icon_tab_report_click" app:clickBgRes="@drawable/icon_tab_click_bg" + app:clickRes="@drawable/icon_tab_report_click" + app:defaultRes="@drawable/icon_tab_report" app:layout_constraintLeft_toRightOf="@+id/tabSwitchMsgBox" app:layout_constraintTop_toTopOf="parent" /> @@ -75,9 +71,9 @@ android:layout_width="@dimen/dp_220" android:layout_height="@dimen/dp_140" android:layout_marginTop="@dimen/dp_20" - app:defaultRes="@drawable/icon_tab_more" - app:clickRes="@drawable/icon_tab_more_click" app:clickBgRes="@drawable/icon_tab_click_bg" + app:clickRes="@drawable/icon_tab_more_click" + app:defaultRes="@drawable/icon_tab_more" app:layout_constraintLeft_toRightOf="@+id/tabSwitchReport" app:layout_constraintTop_toTopOf="parent" /> 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 index feb35276a6..7f3d0718b3 100644 --- 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 @@ -4,91 +4,227 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background_color"> + android:background="@drawable/bg_tab_item"> - + + + + + android:layout_height="@dimen/dp_700" + android:layout_marginTop="@dimen/dp_75" + app:layout_constraintTop_toBottomOf="@+id/topViewPos"> - - - - - + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_40" + android:layout_marginEnd="@dimen/dp_40"> - + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + + \ 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 index 834094ca21..fca451ec7d 100644 --- 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 @@ -36,7 +36,6 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" - app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" /> #3700B3 #03DAC5 #000000 + #B3000000 #8F0005 + #2EACFF #FF0006 #0099dd #FFFFFF 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 d001c4cdd4..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 @@ -6,6 +6,13 @@ 登陆信息 退出 车辆绑定 + 版本信息 + 设备SN + PAD: + AD: + HDMAP: + ADMAP: + 检查更新 最小化 日志 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 20abdadda0..0eacc22ee8 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -1036,8 +1036,11 @@ 1114dp 1125dp 1128dp + 1137dp + 1158dp 1170dp 1200dp + 1241dp 1250dp 1261dp 1300dp