[singapore]
[用户信息展示]
This commit is contained in:
yangyakun
2026-04-15 20:14:43 +08:00
parent c09d05faad
commit b234343dab
34 changed files with 1086 additions and 71 deletions

View File

@@ -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() {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/dp_526"
android:layout_height="@dimen/dp_632"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/dp_682"
android:layout_height="@dimen/dp_1084"
android:background="@drawable/unmanned_more_bg">
<androidx.constraintlayout.widget.Guideline
@@ -10,14 +11,14 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="@dimen/dp_20" />
app:layout_constraintGuide_begin="@dimen/dp_22" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/unmanned_guideline_more_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/dp_40" />
app:layout_constraintGuide_begin="@dimen/dp_42" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/unmanned_guideline_more_right"
@@ -31,20 +32,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_end="@dimen/dp_60" />
<TextView
android:id="@+id/unmanned_more_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_24"
android:text="@string/unmanned_more"
android:textColor="@color/white"
android:textSize="@dimen/sp_45"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toTopOf="@id/unmanned_guideline_more_top" />
app:layout_constraintGuide_end="@dimen/dp_62" />
<ImageView
android:id="@+id/unmannedMoreClose"
@@ -56,36 +44,93 @@
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintTop_toTopOf="@id/unmanned_guideline_more_top" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_driver_head"
app:layout_constraintTop_toTopOf="@+id/unmanned_guideline_more_top"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_60"
android:src="@drawable/unmanned_more_driver_head"
android:layout_width="@dimen/dp_120"
android:layout_height="@dimen/dp_120"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_driver_phone"
app:layout_constraintTop_toBottomOf="@+id/aciv_driver_head"
app:layout_constraintStart_toStartOf="@+id/aciv_driver_head"
app:layout_constraintEnd_toEndOf="@+id/aciv_driver_head"
android:layout_marginTop="@dimen/dp_20"
android:textColor="@color/shuttle_driver_CCFFFFFF"
tools:text="123456789"
android:textSize="@dimen/dp_40"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<View
android:id="@+id/view_split"
app:layout_constraintTop_toBottomOf="@+id/actv_driver_phone"
android:layout_marginTop="@dimen/dp_22"
app:layout_constraintStart_toStartOf="@+id/unmanned_guideline_more_left"
app:layout_constraintEnd_toEndOf="@+id/unmanned_guideline_more_right"
android:layout_marginStart="@dimen/dp_53"
android:layout_marginEnd="@dimen/bus_dp_52"
android:background="@color/shuttle_driver_5A5A5A"
android:layout_width="0dp"
android:layout_height="@dimen/dp_1"/>
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedTakeOverView
android:id="@+id/unmannedTakeOverView"
android:layout_width="0dp"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_37"
android:layout_marginEnd="@dimen/dp_52"
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toBottomOf="@id/view_split" />
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedOperationPanelView
android:id="@+id/unmannedOperationPanelView"
android:layout_width="0dp"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_52"
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toBottomOf="@id/unmannedTakeOverView" />
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedToolStopServiceView
android:id="@+id/unmannedToolStopServiceView"
android:layout_width="0dp"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_36"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_52"
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toBottomOf="@id/unmanned_more_title" />
app:layout_constraintTop_toBottomOf="@id/unmannedOperationPanelView" />
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedToolLogoutView
android:id="@+id/unmannedToolLogoutView"
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedVersionInfoView
android:id="@+id/unmannedVersionInfoView"
android:layout_width="0dp"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_36"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_52"
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toBottomOf="@id/unmannedToolStopServiceView" />
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedUpgradeView
android:layout_width="0dp"
<com.mogo.eagle.core.function.hmi.bone.unmanned.UnmannedToolLogoutView
android:id="@+id/unmannedToolLogoutView"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_36"
app:layout_constraintEnd_toEndOf="@id/unmanned_guideline_more_right"
app:layout_constraintStart_toStartOf="@id/unmanned_guideline_more_left"
app:layout_constraintTop_toBottomOf="@id/unmannedToolLogoutView" />
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"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -108,8 +108,8 @@
<com.mogo.och.unmanned.ui.widget.UnmannedMoreView
android:id="@+id/unmannedLayoutMore"
android:layout_width="@dimen/dp_526"
android:layout_height="@dimen/dp_632"
android:layout_width="@dimen/dp_682"
android:layout_height="@dimen/dp_1084"
android:layout_marginEnd="@dimen/dp_2"
android:visibility="gone"
app:layout_constraintRight_toRightOf="parent"

View File

@@ -80,6 +80,8 @@
<color name="shuttle_driver_1970FF">#1970FF</color>
·
<color name="shuttle_driver_B3FFFFFF">#B3FFFFFF</color>
<color name="shuttle_driver_CCFFFFFF">#CCFFFFFF</color>
<color name="shuttle_driver_ffffffff">#ffffffff</color>
<color name="shuttle_driver_80000000">#80000000</color>
<color name="shuttle_driver_5A5A5A">#5A5A5A</color>
</resources>

View File

@@ -248,7 +248,7 @@ ext {
]
android = [
fLauncherApplicationId : "com.mogo.launcher.f",
fLauncherAmapApiValue : "ace34d685cc04836c03905e4d1536125",
fLauncherAmapApiValue : "-",
compileSdkVersion : 33,
buildToolsVersion : "29.0.2",
minSdkVersion : 23,

View File

@@ -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() {

View File

@@ -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)
}

View File

@@ -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()
}
}

View File

@@ -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()
}
}

View File

@@ -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()
}

View File

@@ -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
}
}

View File

@@ -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()
}
}

View File

@@ -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) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="@dimen/dp_15" />
<solid android:color="@color/color_2EACFF" />
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/color_3D000000" />
</shape>

View File

@@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.eagle.core.widget.RoundConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/dp_1400"
android:layout_height="@dimen/dp_880"
android:background="@drawable/bg_bone_dialog"
app:roundLayoutRadius="@dimen/dp_50">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/acivCloseDialog"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:padding="@dimen/dp_22"
android:layout_marginTop="@dimen/dp_28"
android:layout_marginEnd="@dimen/dp_28"
android:src="@drawable/bia_version_dialog_close"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_version_head_start"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:layout_marginTop="@dimen/dp_70"
android:layout_marginEnd="@dimen/dp_10"
android:src="@drawable/icon_show_version_info"
app:layout_constraintEnd_toStartOf="@+id/actv_version_head_tail"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_version_head_tail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:text="@string/tab_version_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_45"
app:layout_constraintBottom_toBottomOf="@+id/aciv_version_head_start"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/aciv_version_head_start"
app:layout_constraintTop_toTopOf="@+id/aciv_version_head_start" />
<TextView
android:id="@+id/tvCarNoPos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_120"
android:layout_marginTop="@dimen/dp_49"
android:text="@string/tab_car_no"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/aciv_version_head_start" />
<TextView
android:id="@+id/tvCarNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="123456789"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tvCarNoPos"
app:layout_constraintLeft_toRightOf="@+id/tvCarNoPos"
app:layout_constraintTop_toTopOf="@+id/tvCarNoPos"
tools:visibility="visible" />
<TextView
android:id="@+id/tvSnPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_120"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/tab_sn"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCarNoPos" />
<TextView
android:id="@+id/tvSnInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="123456789"
app:layout_constraintBottom_toBottomOf="@+id/tvSnPos"
app:layout_constraintLeft_toRightOf="@+id/tvSnPos"
app:layout_constraintTop_toTopOf="@+id/tvSnPos" />
<View
app:layout_constraintTop_toTopOf="@+id/tvPadVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvPadVersion"
app:layout_constraintEnd_toStartOf="@+id/tvPadVersion"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_2"
android:background="@drawable/app_can_upload_bg"
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"/>
<TextView
android:id="@+id/tvPadVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_120"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:text="@string/tab_version_pad_info"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvSnPos" />
<TextView
android:id="@+id/tvPADVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="123456\"
app:layout_constraintTop_toTopOf="@+id/tvPadVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvPadVersion"
app:layout_constraintStart_toEndOf="@+id/tvPadVersion"
app:layout_constraintEnd_toStartOf="@+id/tvPADUpdate"
/>
<TextView
android:id="@+id/tvPADUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginEnd="@dimen/dp_93"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvPadVersion"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintRight_toRightOf="@+id/tvCarExit"
app:layout_constraintTop_toTopOf="@+id/tvPadVersion" />
<View
app:layout_constraintTop_toTopOf="@+id/tvADVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvADVersion"
app:layout_constraintEnd_toStartOf="@+id/tvADVersion"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_2"
android:background="@drawable/app_can_upload_bg"
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"/>
<TextView
android:id="@+id/tvADVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical"
android:text="@string/tab_version_ad_info"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="@+id/tvPadVersion"
app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" />
<TextView
android:id="@+id/tvADVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="1234560987"
app:layout_constraintTop_toTopOf="@+id/tvADVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvADVersion"
app:layout_constraintStart_toEndOf="@+id/tvADVersion"
app:layout_constraintEnd_toStartOf="@+id/tvADUpdate"
/>
<TextView
android:id="@+id/tvADUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginEnd="@dimen/dp_93"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvADVersion"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvADVersion" />
<View
app:layout_constraintTop_toTopOf="@+id/tvHDMapVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvHDMapVersion"
app:layout_constraintEnd_toStartOf="@+id/tvHDMapVersion"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_2"
android:background="@drawable/app_can_upload_bg"
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"/>
<TextView
android:id="@+id/tvHDMapVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical"
android:text="@string/tab_version_hdmap_info"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="@+id/tvADVersion"
app:layout_constraintTop_toBottomOf="@+id/tvADVersionName" />
<TextView
android:id="@+id/tvHDMapVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="1234560987"
app:layout_constraintTop_toTopOf="@+id/tvHDMapVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvHDMapVersion"
app:layout_constraintStart_toEndOf="@+id/tvHDMapVersion"
app:layout_constraintEnd_toStartOf="@+id/tvHDMapUpdate"
/>
<TextView
android:id="@+id/tvHDMapUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginEnd="@dimen/dp_93"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvHDMapVersion"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvHDMapVersion" />
<TextView
android:id="@+id/tvADMapVersion"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical"
android:text="@string/tab_version_admap_info"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="@+id/tvHDMapVersion"
app:layout_constraintRight_toRightOf="@id/tvCarExit"
app:layout_constraintTop_toBottomOf="@+id/tvHDMapVersion" />
<TextView
android:id="@+id/tvADMapVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="1234560987"
app:layout_constraintTop_toTopOf="@+id/tvADMapVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvADMapVersion"
app:layout_constraintStart_toEndOf="@+id/tvADMapVersion"
app:layout_constraintEnd_toStartOf="@+id/tvHDMapUpdate"
/>
<TextView
android:id="@+id/tvGridMapVersion"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical"
android:text="@string/tab_version_grid_map_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="@+id/tvADMapVersion"
app:layout_constraintRight_toRightOf="@id/tvCarExit"
app:layout_constraintTop_toBottomOf="@+id/tvADMapVersion" />
<TextView
android:id="@+id/tvGridMapVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="1234560987"
app:layout_constraintTop_toTopOf="@+id/tvGridMapVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvGridMapVersion"
app:layout_constraintStart_toEndOf="@+id/tvGridMapVersion"
app:layout_constraintEnd_toStartOf="@+id/tvHDMapUpdate"
/>
<TextView
android:id="@+id/tvSlamMapVersion"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical"
android:text="@string/tab_version_slam_map_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="@+id/tvGridMapVersion"
app:layout_constraintRight_toRightOf="@id/tvCarExit"
app:layout_constraintTop_toBottomOf="@+id/tvGridMapVersion" />
<TextView
android:id="@+id/tvSlamMapVersionName"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="start"
android:maxLines="3"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
tools:text="1234560987"
app:layout_constraintTop_toTopOf="@+id/tvSlamMapVersion"
app:layout_constraintBottom_toBottomOf="@+id/tvSlamMapVersion"
app:layout_constraintStart_toEndOf="@+id/tvSlamMapVersion"
app:layout_constraintEnd_toStartOf="@+id/tvHDMapUpdate"
/>
</com.mogo.eagle.core.widget.RoundConstraintLayout>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clCheckSystem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
>
<ImageView
android:id="@+id/viewCheckShutDown"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:contentDescription="@string/take_over_record"
android:scaleType="fitXY"
android:src="@drawable/icon_toolkit_item_operation_panel"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/icon_toolkit_item_operation_panel" />
<TextView
android:id="@+id/tvSignOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/debug_sop"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_40"
app:layout_constraintBottom_toBottomOf="@id/viewCheckShutDown"
app:layout_constraintStart_toEndOf="@id/viewCheckShutDown"
app:layout_constraintTop_toTopOf="@id/viewCheckShutDown" />
</merge>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clCheckSystem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
>
<ImageView
android:id="@+id/viewCheckShutDown"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:contentDescription="@string/take_over_record"
android:scaleType="fitXY"
android:src="@drawable/icon_toolkit_item_take_over_history"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/icon_toolkit_item_take_over_history" />
<TextView
android:id="@+id/tvSignOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/take_over_record"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_40"
app:layout_constraintBottom_toBottomOf="@id/viewCheckShutDown"
app:layout_constraintStart_toEndOf="@id/viewCheckShutDown"
app:layout_constraintTop_toTopOf="@id/viewCheckShutDown" />
</merge>

View File

@@ -1,35 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clCheckSystem"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/viewCheckShutDown"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:contentDescription="@string/check_system_shut_down"
android:scaleType="fitXY"
android:src="@drawable/icon_toolkit_item_stop_service"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/icon_toolkit_item_stop_service_background" />
android:layout_height="wrap_content"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
>
<TextView
android:id="@+id/tvSignOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_100"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/check_system_logout"
android:textColor="@color/color_FFFFFF"
android:textColor="@color/color_FF2EACFF"
android:textSize="@dimen/sp_40"
android:background="@drawable/app_sign_out_bg"
app:layout_constraintBottom_toBottomOf="@id/viewCheckShutDown"
app:layout_constraintStart_toEndOf="@id/viewCheckShutDown"
app:layout_constraintTop_toTopOf="@id/viewCheckShutDown" />
</androidx.constraintlayout.widget.ConstraintLayout>
</merge>

View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clCheckSystem"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<ImageView
android:id="@+id/viewCheckShutDown"
@@ -82,4 +83,4 @@
app:layout_constraintStart_toEndOf="@id/viewCheckShutDown"
app:layout_constraintTop_toTopOf="@id/viewCheckShutDown" />
</androidx.constraintlayout.widget.ConstraintLayout>
</merge>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clCheckSystem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
>
<ImageView
android:id="@+id/viewCheckShutDown"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:contentDescription="@string/tab_version_info"
android:scaleType="fitXY"
android:src="@drawable/icon_show_version_info"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/icon_show_version_info" />
<TextView
android:id="@+id/tvSignOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/tab_version_info"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_40"
app:layout_constraintBottom_toBottomOf="@id/viewCheckShutDown"
app:layout_constraintStart_toEndOf="@id/viewCheckShutDown"
app:layout_constraintTop_toTopOf="@id/viewCheckShutDown" />
</merge>

View File

@@ -6,9 +6,9 @@
<string name="tab_tool_kit">More</string>
<string name="tab_car_login_info">Login Info</string>
<string name="tab_car_exit">Exit</string>
<string name="tab_car_no">Vehicle Binding</string>
<string name="tab_car_no">Vehicle Binding:</string>
<string name="tab_version_info">Version Info</string>
<string name="tab_sn">Device SN</string>
<string name="tab_sn">Device SN:</string>
<string name="tab_version_pad_info">PAD:</string>
<string name="tab_version_ad_info">AD:</string>
<string name="tab_version_hdmap_info">HD MAP:</string>

View File

@@ -46,6 +46,7 @@
<color name="color_D945D3FF">#D945D3FF</color>
<color name="color_D93261B6">#D93261B6</color>
<color name="color_FFFFCD3D">#FFCD3D</color>
<color name="color_3D000000">#3D000000</color>
<color name="background_wtf">#FF999900</color>
<color name="background_error">#FFCC0000</color>

View File

@@ -6,9 +6,9 @@
<string name="tab_tool_kit">更多内容</string>
<string name="tab_car_login_info">登陆信息</string>
<string name="tab_car_exit">退出</string>
<string name="tab_car_no">车辆绑定</string>
<string name="tab_car_no">车辆绑定:</string>
<string name="tab_version_info">版本信息</string>
<string name="tab_sn">设备SN</string>
<string name="tab_sn">设备SN:</string>
<string name="tab_version_pad_info">PAD</string>
<string name="tab_version_ad_info">AD</string>
<string name="tab_version_hdmap_info">HD MAP</string>

View File

@@ -306,6 +306,10 @@ interface IMoGoHmiProvider :IProvider{
*/
fun removeToolkitByTag(toolTagList: List<String>)
/**
* 运营面板 是否展示
*/
fun getOperatePanelShowing():Boolean
/**
* 显示/隐藏 运营面板
*/

View File

@@ -12,9 +12,11 @@ object CallerHmiListenerManager : CallerBase<IMoGoCheckAutoPilotBtnListener>() {
// 存储最后一次回调的数据,当有新当位置注册了监听将此数据回调过去,防止有些模块注册顺序问题导致无法获取最新状态
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<IMoGoCheckAutoPilotBtnListener>() {
}
fun invokeHDDataCacheStatus(isCached: Boolean) {
this.mIsCached = isCached
M_LISTENERS.forEach {
val listener = it.value
listener.updateHDDataCacheStatus(isCached)

View File

@@ -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自己处理)

View File

@@ -1044,6 +1044,7 @@
<dimen name="dp_1055">1055dp</dimen>
<dimen name="dp_1058">1058dp</dimen>
<dimen name="dp_1080">1080dp</dimen>
<dimen name="dp_1084">1084dp</dimen>
<dimen name="dp_1090">1090dp</dimen>
<dimen name="dp_1092">1092dp</dimen>
<dimen name="dp_1100">1100dp</dimen>
@@ -1064,6 +1065,7 @@
<dimen name="dp_1306">1306dp</dimen>
<dimen name="dp_1373">1373dp</dimen>
<dimen name="dp_1386">1386dp</dimen>
<dimen name="dp_1400">1400dp</dimen>
<dimen name="dp_1489">1489dp</dimen>
<dimen name="dp_1528">1550dp</dimen>
<dimen name="dp_1600">1600dp</dimen>

View File

@@ -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

View File

@@ -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<String, Int>()
@@ -381,6 +383,9 @@ object HDMapUtils {
*/
@JvmStatic
fun getHDCityCode(gdCityCode: String?): Int? {
if(ProjectUtils.isSingapore()){
return 7000
}
return cityCodeMap[gdCityCode]
}
}