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