diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/widget/UnmannedMoreView.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/widget/UnmannedMoreView.kt
index fa3d571953..4ae02a2809 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/widget/UnmannedMoreView.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/widget/UnmannedMoreView.kt
@@ -5,7 +5,10 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.hmi.bone.tab.parsePhoneNo
+import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.shuttle.unmanned.R
+import kotlinx.android.synthetic.main.shuttle_unmanned_more.view.actv_driver_phone
import kotlinx.android.synthetic.main.shuttle_unmanned_more.view.unmannedMoreClose
/**
@@ -30,6 +33,10 @@ class UnmannedMoreView @JvmOverloads constructor(
}
+ LoginStatusManager.getOchLoginInfo()?.let {
+ actv_driver_phone.text = it.phone.parsePhoneNo()
+ }
+
}
override fun onAttachedToWindow() {
diff --git a/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_bg.webp b/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_bg.webp
index 77eededb37..2ab94319c3 100644
Binary files a/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_bg.webp and b/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_bg.webp differ
diff --git a/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_driver_head.webp b/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_driver_head.webp
new file mode 100644
index 0000000000..4ee0b00e80
Binary files /dev/null and b/OCH/shuttle/driver_unmanned/src/main/res/drawable-nodpi/unmanned_more_driver_head.webp differ
diff --git a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_more.xml b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_more.xml
index 3822ff008d..6b709e4de4 100644
--- a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_more.xml
+++ b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_more.xml
@@ -1,8 +1,9 @@
+ app:layout_constraintGuide_begin="@dimen/dp_22" />
+ app:layout_constraintGuide_begin="@dimen/dp_42" />
-
-
-
+ app:layout_constraintGuide_end="@dimen/dp_62" />
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/unmannedOperationPanelView" />
-
-
-
+ android:layout_marginTop="@dimen/dp_47"
+ app:layout_constraintTop_toBottomOf="@+id/unmannedVersionInfoView"
+ app:layout_constraintStart_toStartOf="@+id/unmanned_guideline_more_left"
+ app:layout_constraintEnd_toEndOf="@+id/unmanned_guideline_more_right"
+ />
\ No newline at end of file
diff --git a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_msg_box.xml b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_msg_box.xml
index 03f3993f69..bd360e33fc 100644
--- a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_msg_box.xml
+++ b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_msg_box.xml
@@ -108,8 +108,8 @@
#1970FF
·
#B3FFFFFF
+ #CCFFFFFF
#ffffffff
#80000000
+ #5A5A5A
\ No newline at end of file
diff --git a/config.gradle b/config.gradle
index e6ea98f23f..13eadda6c8 100644
--- a/config.gradle
+++ b/config.gradle
@@ -248,7 +248,7 @@ ext {
]
android = [
fLauncherApplicationId : "com.mogo.launcher.f",
- fLauncherAmapApiValue : "ace34d685cc04836c03905e4d1536125",
+ fLauncherAmapApiValue : "-",
compileSdkVersion : 33,
buildToolsVersion : "29.0.2",
minSdkVersion : 23,
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
index 49a625a94f..2201232645 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
@@ -35,6 +35,11 @@ class WorkOrderManager{
* 展示接管记录页面
*/
fun showTakeOverRecordView(context: Context){
+ if(hideFloat!=null){
+ hideFloat?.invoke()
+ hideFloat = null
+ return
+ }
val takeOverRecordView = TakeOverRecordView(context)
takeOverRecordView.setOnClickListener(object: TakeOverRecordView.ClickListener{
override fun onClose() {
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 ec9f74c1b4..2de2c98040 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
@@ -65,11 +65,11 @@ import org.json.JSONObject
import system_master.SsmInfo
import system_master.SystemStatusInfo
-private fun String.parsePlateNo(): String {
+fun String.parsePlateNo(): String {
return " " + substring(0, 2) + " " + substring(2) + " "
}
-private fun String.parsePhoneNo(): String {
+fun String.parsePhoneNo(): String {
return take(3) + "****" + takeLast(4)
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedOperationPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedOperationPanelView.kt
new file mode 100644
index 0000000000..d07a766af7
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedOperationPanelView.kt
@@ -0,0 +1,51 @@
+package com.mogo.eagle.core.function.hmi.bone.unmanned
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
+import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.kotlin.onClick
+import kotlinx.android.synthetic.main.unmanned_view_tool_logout.view.tvSignOut
+import com.mogo.eagle.core.function.call.och.CallerOchBizFunctionCall4EagleManager
+
+
+/**
+ * 退出登录
+ */
+class UnmannedOperationPanelView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ companion object {
+ const val TAG = "UnmannedToolStopServiceView"
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.unmanned_view_operation_panel, this, true)
+ initView()
+ }
+
+ private fun initView() {
+ onClick {
+ if(CallerHmiManager.getOperatePanelShowing()){
+ CallerHmiManager.toggleOperatePanel(false)
+ }else {
+ CallerHmiManager.toggleOperatePanel(true)
+ }
+ }
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ }
+
+}
\ 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/unmanned/UnmannedTakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedTakeOverView.kt
new file mode 100644
index 0000000000..7d8318b9b8
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedTakeOverView.kt
@@ -0,0 +1,47 @@
+package com.mogo.eagle.core.function.hmi.bone.unmanned
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
+import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.kotlin.onClick
+import kotlinx.android.synthetic.main.unmanned_view_tool_logout.view.tvSignOut
+import com.mogo.eagle.core.function.call.och.CallerOchBizFunctionCall4EagleManager
+
+
+/**
+ * 退出登录
+ */
+class UnmannedTakeOverView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ companion object {
+ const val TAG = "UnmannedToolStopServiceView"
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.unmanned_view_take_over, this, true)
+ initView()
+ }
+
+ private fun initView() {
+ onClick {
+ CallerDevaToolsManager.showTakeOverRecordView(it.context)
+ }
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ }
+
+}
\ 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/unmanned/UnmannedToolLogoutView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedToolLogoutView.kt
index 1053451edb..fff7353cb1 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedToolLogoutView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedToolLogoutView.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import kotlinx.android.synthetic.main.unmanned_view_tool_logout.view.tvSignOut
@@ -11,7 +12,7 @@ import com.mogo.eagle.core.function.call.och.CallerOchBizFunctionCall4EagleManag
/**
- * 一件停服
+ * 退出登录
*/
class UnmannedToolLogoutView @JvmOverloads constructor(
context: Context,
@@ -29,8 +30,8 @@ class UnmannedToolLogoutView @JvmOverloads constructor(
}
private fun initView() {
- //一键停服
- tvSignOut.onClick {
+ //退出登录
+ onClick {
CallerOchBizFunctionCall4EagleManager.logout()
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedVersionInfoDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedVersionInfoDialog.kt
new file mode 100644
index 0000000000..a6e841290b
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedVersionInfoDialog.kt
@@ -0,0 +1,318 @@
+package com.mogo.eagle.core.function.hmi.bone.unmanned
+
+import android.content.Context
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout.GONE
+import androidx.constraintlayout.widget.ConstraintLayout.VISIBLE
+import androidx.lifecycle.LifecycleObserver
+import com.mogo.commons.debug.DebugConfig
+import com.mogo.commons.storage.SharedPrefsMgr
+import com.mogo.eagle.core.data.app.AppConfigInfo
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
+import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
+import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
+import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
+import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
+import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
+import com.mogo.eagle.core.function.call.devatools.CallerOTAManager
+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.bone.tab.parsePlateNo
+import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
+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.NetworkUtils
+import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+import com.mogo.map.MogoData
+import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig
+import kotlinx.android.synthetic.main.dialog_version_info.acivCloseDialog
+import kotlinx.android.synthetic.main.dialog_version_info.tvADMapVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvHDMapVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvADVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvCarNo
+import kotlinx.android.synthetic.main.dialog_version_info.tvGridMapVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvHDMapUpdate
+import kotlinx.android.synthetic.main.dialog_version_info.tvPADUpdate
+import kotlinx.android.synthetic.main.dialog_version_info.tvPADVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvSlamMapVersionName
+import kotlinx.android.synthetic.main.dialog_version_info.tvSnInfo
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import org.json.JSONObject
+import system_master.SsmInfo
+import system_master.SystemStatusInfo
+
+/**
+ * @author XuXinChao
+ * @description 工控机确认升级对话框
+ * @since: 2022/1/13
+ */
+class UnmannedVersionInfoDialog(context: Context) :
+ BaseFloatDialog(context,TAG), LifecycleObserver, IMoGoCheckAutoPilotBtnListener,
+ IMoGoAutopilotStatusListener, IDataCenterBizListener {
+
+ companion object {
+ private const val TAG = "UnmannedVersionInfoDialog"
+ private var adUpgradeDialog: UnmannedVersionInfoDialog? = null
+
+ fun show(context: Context?) {
+ context?.let {
+ if (adUpgradeDialog == null) {
+ adUpgradeDialog = UnmannedVersionInfoDialog(it)
+ }
+ adUpgradeDialog?.let { dialog ->
+ if (dialog.isShowing) {
+ return
+ }
+ dialog.show()
+ }
+ }
+ }
+ }
+
+ @Volatile
+ private var isHDCached = false
+
+
+ init {
+ setContentView(R.layout.dialog_version_info)
+ setCanceledOnTouchOutside(true)
+
+ initView()
+ initListener()
+ }
+
+ private fun initView() {
+ CallerHmiListenerManager.addListener(TAG,this)
+ CallerAutoPilotStatusListenerManager.addListener(TAG, this)
+ CallerDataCenterBizListener.addListener(TAG, this)
+
+ showCurrentPadVersion()
+ showCurrentAdVersion()
+ updateAdHdMapVersion()
+ updateGridMapVersion()
+ updateSlamMapVersion()
+
+ tvSnInfo.text = SharedPrefsMgr.getInstance().sn
+
+
+
+ GlobalScope.launch(Dispatchers.IO){
+ MogoData.mogoMapData.get()?.isCityDataCached {
+ updateHDDataCacheStatus(it)
+ }
+ }
+ }
+
+ private fun initListener(){
+ acivCloseDialog.setOnClickListener {
+ dismiss()
+ }
+
+ //鹰眼版本 检查更新
+ tvPADUpdate.setOnClickListener {
+ HmiActionLog.hmiAction(
+ "${SceneConstant.M_HMI}${TAG}",
+ "pad version view clicked"
+ )
+ val provider = CallerDevaToolsManager.upgradeProvider()
+ if (provider?.isDownloading() == true) {
+// ToastUtils.showShort("正在下载最新版本,请稍候再试...")
+ ToastUtils.showShort(R.string.module_mogo_core_function_hmi_downloading_new_version)
+ return@setOnClickListener
+ }
+ CallerDevaToolsManager.queryAppUpgrade { upgradeStatus, errorInfo ->
+ if (!upgradeStatus && !errorInfo.isNullOrEmpty()) {
+ ToastUtils.showShort(errorInfo)
+ }
+ }
+ }
+ //域控OTA升级 检查更新
+ tvHDMapVersionName.setOnClickListener {
+ HmiActionLog.hmiAction(
+ "${SceneConstant.M_HMI}${TAG}",
+ "ad version view clicked"
+ )
+ if(OTAUpgradeConfig.supportOTA){
+ //查询OTA状态
+ OTAUpgradeConfig.isQuery = true
+ OTAUpgradeConfig.promptedUpgrade.remove(OTAUpgradeConfig.otaToken)
+ CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken)
+
+ //查询OTA2.0升级
+ val query = JSONObject()
+ query.put("cmd","PAD_QUERY_UPGRADE_STATUS")
+ query.put("token", OTAUpgradeConfig.token)
+ CallerAutoPilotControlManager.sendOtaPadMsgQuery(query.toString())
+ CallerOTAManager.invokeOtaPadMsgQuery()
+ }else{
+// ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级")
+ ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ssm_not_start)
+ }
+
+ }
+ tvHDMapVersionName.text = DebugConfig.getMapVersion()
+ //高精地图 检查更新
+ tvHDMapUpdate.setOnClickListener {
+ HmiActionLog.hmiAction(
+ "${SceneConstant.M_HMI}${TAG}",
+ mapOf("isHDCached" to isHDCached)
+ )
+ if (isHDCached) { // 已缓存
+ ToastUtils.showShort(context.resources.getString(R.string.offline_had_downloaded))
+ } else {// 未缓存
+ if (!NetworkUtils.isConnected(context)) {
+ ToastUtils.showShort(context.resources.getString(R.string.offline_update_tip))
+ return@setOnClickListener
+ }
+ if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode
+ if ((CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude <= 0.0 && CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude <= 0.0)) {// 未拿到高精的经纬度
+ ToastUtils.showShort(context.resources.getString(R.string.location_try_again))
+ } else { // 拿到了高精的经纬度
+ OfflineMapDialog(context).show()
+ }
+ } else {// 拿到高德的cityCode
+ OfflineMapDialog(context).show()
+ }
+ }
+ }
+ }
+
+ private fun showCurrentPadVersion() {
+ tvPADVersionName.text = AppUtils.getAppVersionName()
+ }
+
+ private fun showCurrentAdVersion() {
+ UiThreadHandler.post {
+ if(AppConfigInfo.mapShowName.isNotEmpty()){
+ tvADVersionName.text = AppConfigInfo.mapShowName
+ }else{
+ if(CallerAutoPilotStatusListenerManager.getDockerVersion().isNullOrEmpty()){
+ tvADVersionName.text = ""
+ }else{
+ tvADVersionName.text = CallerAutoPilotStatusListenerManager.getDockerVersion()
+ }
+ }
+ }
+ }
+
+ /**
+ * 更新域控高精地图版本
+ */
+ private fun updateAdHdMapVersion() {
+ if (AppConfigInfo.adHdMapVersion.isNotEmpty()) {
+ UiThreadHandler.post {
+ if(tvADMapVersionName.text.contains(AppConfigInfo.adHdMapVersion)){
+ return@post
+ }
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "updateAdHdMapVersion, adHdMapVersion:${AppConfigInfo.adHdMapVersion} , text:${tvADMapVersionName.text}")
+ tvADMapVersionName.text = AppConfigInfo.adHdMapVersion
+ }
+ }
+ }
+
+ /**
+ * 更新工控机栅格地图版本
+ */
+ private fun updateGridMapVersion(){
+ if(AppConfigInfo.gridMapVersion.isNotEmpty()){
+ UiThreadHandler.post{
+ if(tvGridMapVersionName.text.contains(AppConfigInfo.gridMapVersion)){
+ return@post
+ }
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "updateGridMapVersion, gridMapVersion:${AppConfigInfo.gridMapVersion}")
+ tvGridMapVersionName.text = AppConfigInfo.gridMapVersion
+ tvGridMapVersionName.visibility = View.VISIBLE
+ }
+ }else{
+ UiThreadHandler.post{
+ tvGridMapVersionName.visibility = View.GONE
+ }
+ }
+ }
+
+ /**
+ * 更新工控机激光Slam地图版本
+ */
+ private fun updateSlamMapVersion(){
+ if(AppConfigInfo.slamMapVersion.isNotEmpty()){
+ UiThreadHandler.post{
+ if(tvSlamMapVersionName.text.contains(AppConfigInfo.slamMapVersion)){
+ return@post
+ }
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "updateSlamMapVersion, slamMapVersion:${AppConfigInfo.slamMapVersion}")
+ tvSlamMapVersionName.text = AppConfigInfo.slamMapVersion
+ tvSlamMapVersionName.visibility = View.VISIBLE
+ }
+ }else{
+ UiThreadHandler.post{
+ tvSlamMapVersionName.visibility = View.GONE
+ }
+ }
+ }
+
+ override fun onAutopilotDockerInfo(dockerVersion: String) {
+ super.onAutopilotDockerInfo(dockerVersion)
+ showCurrentAdVersion()
+ }
+
+ override fun updateHDDataCacheStatus(isCached: Boolean) {
+ isHDCached = isCached
+ }
+
+ override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {
+ CallerLogger.i(SceneConstant.M_HMI + TAG, "hdMapVer=" + status.hdMapVer)
+ updateAdHdMapVersion()
+ updateGridMapVersion()
+ updateSlamMapVersion()
+ }
+
+ /**
+ * 定频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)
+ updateAdHdMapVersion()
+ updateGridMapVersion()
+ updateSlamMapVersion()
+ }
+
+ override fun invokeCarNo(no: String?) {
+ super.invokeCarNo(no)
+ UiThreadHandler.post {
+ if (!no.isNullOrEmpty()) {
+ if (tvCarNo.text.isNotEmpty() && tvCarNo.text == no) {
+ CallerLogger.i("$M_HMI${TAG}", "已存在车牌号")
+ return@post
+ }
+ tvCarNo.visibility = VISIBLE
+ tvCarNo.text = no.parsePlateNo()
+ } else {
+ tvCarNo.visibility = GONE
+ tvCarNo.text = ""
+ }
+ }
+ }
+
+
+ override fun dismiss() {
+ super.dismiss()
+ CallerHmiListenerManager.removeListener(TAG)
+ CallerAutoPilotStatusListenerManager.removeListener(TAG)
+ CallerDataCenterBizListener.removeListener(TAG)
+ adUpgradeDialog = null
+ }
+
+}
\ 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/unmanned/UnmannedVersionInfoView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedVersionInfoView.kt
new file mode 100644
index 0000000000..58e6e02e07
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/unmanned/UnmannedVersionInfoView.kt
@@ -0,0 +1,43 @@
+package com.mogo.eagle.core.function.hmi.bone.unmanned
+
+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.kotlin.onClick
+
+
+/**
+ * 退出登录
+ */
+class UnmannedVersionInfoView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ companion object {
+ const val TAG = "UnmannedToolStopServiceView"
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.unmanned_view_version_info, this, true)
+ initView()
+ }
+
+ private fun initView() {
+ onClick {
+ UnmannedVersionInfoDialog.show(context)
+ }
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ }
+
+}
\ 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 9e31c3ea01..4c35662faf 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
@@ -90,6 +90,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils
import java.lang.ref.WeakReference
import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicReference
+import androidx.core.view.isVisible
/**
* @author xiaoyuzhou
@@ -489,6 +490,15 @@ class MoGoHmiProvider : IMoGoHmiProvider {
CallerHmiViewControlListenerManager.invokeGreenWaveDismiss()
}
+ override fun getOperatePanelShowing(): Boolean {
+ operatePanel.get()?.get()?.let {
+ if (it.isVisible) {
+ return true
+ }
+ }
+ return false
+ }
+
override fun toggleOperatePanel(show: Boolean) {
val activity = AppStateManager.currentActivity()
if (activity == null) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bia_version_dialog_close.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bia_version_dialog_close.png
new file mode 100644
index 0000000000..b63e47851c
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/bia_version_dialog_close.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_show_version_info.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_show_version_info.png
new file mode 100644
index 0000000000..2057063121
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_show_version_info.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_can_upload_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_can_upload_bg.xml
new file mode 100644
index 0000000000..02251c56de
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_can_upload_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_sign_out_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_sign_out_bg.xml
new file mode 100644
index 0000000000..bfbb76f77a
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/app_sign_out_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_version_info.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_version_info.xml
new file mode 100644
index 0000000000..9ebb27888d
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_version_info.xml
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_operation_panel.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_operation_panel.xml
new file mode 100644
index 0000000000..87a2339ed2
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_operation_panel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_take_over.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_take_over.xml
new file mode 100644
index 0000000000..c197c60373
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_take_over.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_logout.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_logout.xml
index ed215e9ea0..ca2728f54a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_logout.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_logout.xml
@@ -1,35 +1,26 @@
-
-
-
+ android:layout_height="wrap_content"
+ tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
+ >
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_stop_service.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_stop_service.xml
index 37f1b990f1..e3dd8937c2 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_stop_service.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_tool_stop_service.xml
@@ -1,10 +1,11 @@
-
+ android:layout_height="wrap_content"
+ tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_version_info.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_version_info.xml
new file mode 100644
index 0000000000..fbfe50cbc8
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/unmanned_view_version_info.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values-en/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values-en/strings.xml
index 1b4325135d..88507460b1 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/values-en/strings.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values-en/strings.xml
@@ -6,9 +6,9 @@
More
Login Info
Exit
- Vehicle Binding
+ Vehicle Binding:
Version Info
- Device SN
+ Device SN:
PAD:
AD:
HD MAP:
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 62b9d12ffd..c762fd45bd 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
@@ -46,6 +46,7 @@
#D945D3FF
#D93261B6
#FFCD3D
+ #3D000000
#FF999900
#FFCC0000
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 199b2752fb..b444b154f6 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,9 +6,9 @@
更多内容
登陆信息
退出
- 车辆绑定
+ 车辆绑定:
版本信息
- 设备SN
+ 设备SN:
PAD:
AD:
HD MAP:
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
index 6d6381bcb0..0eea243292 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
@@ -306,6 +306,10 @@ interface IMoGoHmiProvider :IProvider{
*/
fun removeToolkitByTag(toolTagList: List)
+ /**
+ * 运营面板 是否展示
+ */
+ fun getOperatePanelShowing():Boolean
/**
* 显示/隐藏 运营面板
*/
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt
index 128adbfe9b..469e5e2a3c 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt
@@ -12,9 +12,11 @@ object CallerHmiListenerManager : CallerBase() {
// 存储最后一次回调的数据,当有新当位置注册了监听将此数据回调过去,防止有些模块注册顺序问题导致无法获取最新状态
private var mIsChecked: Boolean = false
+ private var mIsCached: Boolean = false
override fun doSomeAfterAddListener(tag: String, listener: IMoGoCheckAutoPilotBtnListener) {
listener.onCheck(mIsChecked)
+ listener.updateHDDataCacheStatus(mIsCached)
}
/**
@@ -30,6 +32,7 @@ object CallerHmiListenerManager : CallerBase() {
}
fun invokeHDDataCacheStatus(isCached: Boolean) {
+ this.mIsCached = isCached
M_LISTENERS.forEach {
val listener = it.value
listener.updateHDDataCacheStatus(isCached)
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
index 9c21d20cd8..e502318528 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
@@ -393,6 +393,15 @@ object CallerHmiManager {
fun toggleOperatePanel(show: Boolean) {
hmiProviderApi?.toggleOperatePanel(show)
}
+ /**
+ * 显示/隐藏 运营面板
+ */
+ fun getOperatePanelShowing():Boolean {
+ hmiProviderApi?.getOperatePanelShowing()?.let {
+ return it
+ }
+ return false
+ }
/**
* 注册 工具箱 item点击事件监听 (默认样式item的点击事件监听,自定义样式的item的点击交给view自己处理)
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 b0c7548d8d..80e7899b63 100644
--- a/core/mogo-core-res/src/main/res/values/dimens.xml
+++ b/core/mogo-core-res/src/main/res/values/dimens.xml
@@ -1044,6 +1044,7 @@
1055dp
1058dp
1080dp
+ 1084dp
1090dp
1092dp
1100dp
@@ -1064,6 +1065,7 @@
1306dp
1373dp
1386dp
+ 1400dp
1489dp
1550dp
1600dp
diff --git a/gradle.properties b/gradle.properties
index d8cffd400e..69c11deeee 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -152,7 +152,7 @@ MATRIX_VERSION=2.0.8
# 公交模式司机端版本号
-DRIVER_VERSION=8.4.0
+DRIVER_VERSION=8.5.0
# 公交模式乘客端端版本号
-PASSENGER_VERSION=7.4.0
+PASSENGER_VERSION=7.5.0
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt
index 6ef5e36c2c..78eaef539f 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt
@@ -1,5 +1,7 @@
package com.mogo.map.utils
+import com.mogo.commons.env.ProjectUtils
+
object HDMapUtils {
private val cityCodeMap by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
val map = HashMap()
@@ -381,6 +383,9 @@ object HDMapUtils {
*/
@JvmStatic
fun getHDCityCode(gdCityCode: String?): Int? {
+ if(ProjectUtils.isSingapore()){
+ return 7000
+ }
return cityCodeMap[gdCityCode]
}
}
\ No newline at end of file