[8.2.8][i18n] mogo-core-function-hmi 中文抽取

This commit is contained in:
xinfengkun
2025-11-24 17:14:11 +08:00
parent a284fd24da
commit 8f9d60eeb5
95 changed files with 1219 additions and 446 deletions

View File

@@ -16,6 +16,7 @@
android:layout_centerVertical="true"
android:src="@drawable/charter_ic_autopilot" />
<!-- android:text="自动驾驶"-->
<TextView
android:id="@+id/bus_autopolot_btn_tv"
android:layout_width="wrap_content"
@@ -23,7 +24,7 @@
android:layout_centerVertical="true"
android:layout_marginLeft="28dp"
android:layout_toRightOf="@+id/bus_autopilot_btn_iv"
android:text="自动驾驶"
android:text="@string/module_core_automatic_driving"
android:textColor="@color/charter_autopilot_text_color_normal"
android:textSize="@dimen/dp_40"
android:textStyle="bold" />

View File

@@ -16,6 +16,7 @@
android:layout_width="@dimen/dp_90"
android:layout_height="@dimen/dp_90"/>
<!-- android:text="靠边停车"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_title"
app:layout_constraintStart_toStartOf="@+id/aciv_center_image"
@@ -23,7 +24,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_9"
android:textSize="@dimen/dp_20"
android:text="靠边停车"
android:text="@string/module_core_pull_over"
android:textColor="@color/charter_p_090f28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@@ -16,6 +16,7 @@
android:layout_width="@dimen/dp_90"
android:layout_height="@dimen/dp_90"/>
<!-- android:text="靠边停车"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_title"
app:layout_constraintStart_toStartOf="@+id/aciv_center_image"
@@ -23,7 +24,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_9"
android:textSize="@dimen/dp_20"
android:text="靠边停车"
android:text="@string/module_core_pull_over"
android:textColor="@color/charter_p_090f28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@@ -9,7 +9,9 @@ import android.os.Message
import android.widget.ImageView
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.R
import java.lang.ref.SoftReference
import java.util.concurrent.ArrayBlockingQueue
import java.util.concurrent.Future
@@ -115,7 +117,8 @@ class BigFrameAnimatorContainer (resId: Int,
heightImage = bmp.height
config = bmp.config
}catch (e:Exception){
throw RuntimeException("请设置图片或传递大小")
// throw RuntimeException("请设置图片或传递大小")
throw RuntimeException(StringUtils.getString(R.string.module_core_set_image))
}
}
// 当图片大小类型相同时进行复用避免频繁GC

View File

@@ -8,7 +8,9 @@ import android.os.Looper
import android.widget.ImageView
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.R
import java.lang.ref.SoftReference
class FrameAnimatorContainer (resId: Int,
@@ -88,7 +90,8 @@ class FrameAnimatorContainer (resId: Int,
heightImage = bmp.height
config = bmp.config
}catch (e:Exception){
throw RuntimeException("请设置图片或传递大小")
// throw RuntimeException("请设置图片或传递大小")
throw RuntimeException(StringUtils.getString(R.string.module_core_set_image))
}
}
// 当图片大小类型相同时进行复用避免频繁GC

View File

@@ -43,9 +43,10 @@
android:layout_width="@dimen/dp_424"
android:layout_height="@dimen/dp_84"/>
<!-- android:text="关闭"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_cancle"
android:text="关闭"
android:text="@string/module_core_close"
app:layout_constraintTop_toBottomOf="@+id/acet_close"
app:layout_constraintStart_toStartOf="@+id/acet_close"
android:gravity="center"

View File

@@ -68,6 +68,8 @@
app:layout_constraintBottom_toBottomOf="@+id/sweeperTrafficPosition"
android:layout_marginStart="@dimen/dp_34"
/>
<!-- android:text="自动驾驶"-->
<TextView
android:id="@+id/sweeperAutoState"
android:layout_width="@dimen/dp_168"
@@ -78,7 +80,7 @@
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dp_28"
android:text="自动驾驶"
android:text="@string/module_core_automatic_driving"
android:background="@drawable/icon_not_auto"
android:layout_marginStart="@dimen/dp_20"/>
<View

View File

@@ -51,12 +51,13 @@
app:layout_constraintRight_toRightOf="parent"
android:text="元"/>
<!-- android:text="展开"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/orderViewDetailBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="展开"
android:text="@string/module_core_unfold"
android:textColor="@color/common_2eacff"
android:textSize="@dimen/dp_30"
android:textStyle="bold"

View File

@@ -17,6 +17,7 @@
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_71"/>
<!-- android:text="靠边停车"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_title"
app:layout_constraintStart_toStartOf="@+id/aciv_center_image"
@@ -24,7 +25,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_21"
android:textSize="@dimen/dp_27"
android:text="靠边停车"
android:text="@string/module_core_pull_over"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@@ -87,13 +87,14 @@
app:layout_constraintLeft_toRightOf="@id/ivSpeedAdd"
android:layout_marginStart="@dimen/dp_20" />
<!-- android:text="确定"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvSureModify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="确定"
android:text="@string/module_core_confirm"
android:textColor="@android:color/white"
android:textSize="@dimen/sp_36"
android:paddingTop="@dimen/dp_5"

View File

@@ -19,6 +19,7 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo_core_function_devatools.status.StatusManager
import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus
@@ -80,7 +81,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
private fun initView() {
// 默认展示 FSM 情况未知的状态
handleFSM(FSMStatus(FSMStateCode.UnKnown, listOf("未知")))
// handleFSM(FSMStatus(FSMStateCode.UnKnown, listOf("未知")))
handleFSM(FSMStatus(FSMStateCode.UnKnown, listOf(StringUtils.getString(R.string.module_core_unknown))))
}
/**
@@ -293,7 +295,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
*/
private fun handleFSMDemoMode() {
Logger.d(TAG, "--- handleFSMDemoMode ---")
handleFSM(FSMStatus(FSMStateCode.ExistNormal, listOf("正常")))
// handleFSM(FSMStatus(FSMStateCode.ExistNormal, listOf("正常")))
handleFSM(FSMStatus(FSMStateCode.ExistNormal, listOf(StringUtils.getString(R.string.module_core_normal))))
}
private fun notifyStatus(isError: Boolean) {

View File

@@ -12,6 +12,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.zhjt.mogo_core_function_devatools.status.StatusManager
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStateCode
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus
@@ -48,7 +49,8 @@ class FSMStatusDetailDialog(context: Context) : BaseFloatDialog(context, TAG),
}
fun setFsmErrorStatus(msgArray: List<String>) {
tvTitle?.text = "FSM异常"
// tvTitle?.text = "FSM异常"
tvTitle?.text = StringUtils.getString(R.string.module_core_fsm_error)
runCatching {
val c = Color.parseColor("#FF4E41")
tvTitle?.setTextColor(c)
@@ -60,16 +62,19 @@ class FSMStatusDetailDialog(context: Context) : BaseFloatDialog(context, TAG),
}
private fun setFsmNormalStatus() {
tvTitle?.text = "FSM正常"
// tvTitle?.text = "FSM正常"
tvTitle?.text = StringUtils.getString(R.string.module_core_fsm_normal)
runCatching {
val c = Color.parseColor("#26C14F")
tvTitle?.setTextColor(c)
}
addFsmMsgItemView(ArrayList<String>().also { it += "FSM异常状态已恢复" }, false)
// addFsmMsgItemView(ArrayList<String>().also { it += "FSM异常状态已恢复" }, false)
addFsmMsgItemView(ArrayList<String>().also { it += StringUtils.getString(R.string.module_core_fsm_error_recover) }, false)
}
private fun setFsmUnknownStatus() {
tvTitle?.text = "FSM状态未知"
// tvTitle?.text = "FSM状态未知"
tvTitle?.text = StringUtils.getString(R.string.module_core_fsm_error_unknown)
runCatching {
val c = Color.parseColor("#FFCD3D")
tvTitle?.setTextColor(c)
@@ -78,7 +83,8 @@ class FSMStatusDetailDialog(context: Context) : BaseFloatDialog(context, TAG),
}
private fun setFsmNotExistStatus() {
tvTitle?.text = "FSM不存在"
// tvTitle?.text = "FSM不存在"
tvTitle?.text = StringUtils.getString(R.string.module_core_fsm_not_exist)
runCatching {
val c = Color.parseColor("#FFFFFF")
tvTitle?.setTextColor(c)

View File

@@ -20,6 +20,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp
import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -182,7 +183,8 @@ class MsgBoxTabAdapter(private val activity: Activity) :
holder.tvBagReceiveTime.text =
TimeUtils.millis2String(it[position].timestamp, getHourMinFormat())
holder.tvBagRecordTime.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
val msgBoxBean = it[position]
val recordBagMsg = msgBoxBean.bean as RecordBagMsg
holder.tvRecordCheck.setOnClickListener {
@@ -203,13 +205,16 @@ class MsgBoxTabAdapter(private val activity: Activity) :
val fmInfoMsg = it[position].bean as FMInfoMsg
//时间显示
holder.tvFmTime.text =
"时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
// "时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
"${StringUtils.getString(R.string.module_core_time)}${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
//建议操作
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
//建议操作暂无
holder.tvFmAction.text = "建议操作:暂无"
// holder.tvFmAction.text = "建议操作:暂无"
holder.tvFmAction.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
//Title
holder.tvFmTitle.text = "暂无建议操作"
// holder.tvFmTitle.text = "暂无建议操作"
holder.tvFmTitle.text = StringUtils.getString(R.string.module_core_not_available_suggested_procedure)
}else{
val receiveFaultLevel = ArrayList<Int>()
fmInfoMsg.fmInfoList!!.forEach { info ->
@@ -225,7 +230,8 @@ class MsgBoxTabAdapter(private val activity: Activity) :
//对faultLevel集合进行排序按照顺序输出建议操作
if(receiveFaultLevel.size > 0){
val faultActionStr: StringBuilder = StringBuilder()
faultActionStr.append("建议操作:")
// faultActionStr.append("建议操作:")
faultActionStr.append(StringUtils.getString(R.string.module_core_suggested_procedure))
receiveFaultLevel.sort()
// receiveFaultLevel.reverse()
//Title
@@ -264,22 +270,27 @@ class MsgBoxTabAdapter(private val activity: Activity) :
}
holder.tvFmAction.text = faultActionStr.toString()
}else{
holder.tvFmAction.text = "建议操作:暂无"
// holder.tvFmAction.text = "建议操作:暂无"
holder.tvFmAction.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
}
}else{
holder.tvFmAction.text = "建议操作:暂无"
// holder.tvFmAction.text = "建议操作:暂无"
holder.tvFmAction.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
//轻度预警样式
holder.ivFmImage.setImageDrawable(getDrawable(R.drawable.icon_fm_mild_warning))
}
}
//故障策略
holder.tvFmFault.text = "故障策略:${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
// holder.tvFmFault.text = "故障策略:${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
holder.tvFmFault.text = "${StringUtils.getString(R.string.module_core_fault_handling_strategy)}${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
//故障原因
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
holder.tvFmReason.text = "故障原因:暂无"
// holder.tvFmReason.text = "故障原因:暂无"
holder.tvFmReason.text = StringUtils.getString(R.string.module_core_failure_cause_not_available)
}else{
val fmFaultReason = StringBuilder()
fmFaultReason.append("故障原因:")
// fmFaultReason.append("故障原因:")
fmFaultReason.append(StringUtils.getString(R.string.module_core_failure_cause))
for((index,info) in fmInfoMsg.fmInfoList!!.withIndex()){
fmFaultReason.append(info.faultName)
if(info.faultId.isNotBlank()){
@@ -295,10 +306,12 @@ class MsgBoxTabAdapter(private val activity: Activity) :
}
//故障后果
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
holder.tvFmResult.text = "故障后果:暂无"
// holder.tvFmResult.text = "故障后果:暂无"
holder.tvFmResult.text = StringUtils.getString(R.string.module_core_consequences_failure_not_available)
}else{
val fmFaultResult = StringBuilder()
fmFaultResult.append("故障后果:")
// fmFaultResult.append("故障后果:")
fmFaultResult.append(StringUtils.getString(R.string.module_core_consequences_failure))
fmInfoMsg.fmInfoList!!.forEach { info->
if(info.faultResultCount != 0){
info.faultResultList.forEach { result->
@@ -319,17 +332,20 @@ class MsgBoxTabAdapter(private val activity: Activity) :
if(fmFaultResult.endsWith("/")){
holder.tvFmResult.text = fmFaultResult.deleteCharAt(fmFaultResult.lastIndex).toString()
}else{
holder.tvFmResult.text = "故障后果:暂无"
// holder.tvFmResult.text = "故障后果:暂无"
holder.tvFmResult.text = StringUtils.getString(R.string.module_core_consequences_failure_not_available)
}
}
//对布局进行展开折叠操作
if(fmInfoMsg.isShow){
holder.tvFmShowStatus.text = "收起"
// holder.tvFmShowStatus.text = "收起"
holder.tvFmShowStatus.text = StringUtils.getString(R.string.module_core_pack_up)
holder.tvFmFault.visibility = View.VISIBLE
holder.tvFmReason.visibility = View.VISIBLE
holder.tvFmResult.visibility = View.VISIBLE
}else{
holder.tvFmShowStatus.text = "展开"
// holder.tvFmShowStatus.text = "展开"
holder.tvFmShowStatus.text = StringUtils.getString(R.string.module_core_unfold)
holder.tvFmFault.visibility = View.GONE
holder.tvFmReason.visibility = View.GONE
holder.tvFmResult.visibility = View.GONE
@@ -337,13 +353,15 @@ class MsgBoxTabAdapter(private val activity: Activity) :
holder.tvFmShowStatus.setOnClickListener{
if(!fmInfoMsg.isShow){
fmInfoMsg.isShow = true
holder.tvFmShowStatus.text = "收起"
// holder.tvFmShowStatus.text = "收起"
holder.tvFmShowStatus.text = StringUtils.getString(R.string.module_core_pack_up)
holder.tvFmFault.visibility = View.VISIBLE
holder.tvFmReason.visibility = View.VISIBLE
holder.tvFmResult.visibility = View.VISIBLE
}else{
fmInfoMsg.isShow = false
holder.tvFmShowStatus.text = "展开"
// holder.tvFmShowStatus.text = "展开"
holder.tvFmShowStatus.text = StringUtils.getString(R.string.module_core_unfold)
holder.tvFmFault.visibility = View.GONE
holder.tvFmReason.visibility = View.GONE
holder.tvFmResult.visibility = View.GONE
@@ -356,7 +374,8 @@ class MsgBoxTabAdapter(private val activity: Activity) :
data?.let { it ->
val reportMsgBox = it[position]
holder.tvReportTime.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
val reportEntity = (it[position].bean as ReportEntity)
if (reportEntity.resultList.contains(RESULT_AUTOPILOT_DISABLE)
|| reportEntity.resultList.contains(RESULT_AUTOPILOT_SYSTEM_UNSTARTED)
@@ -379,29 +398,36 @@ class MsgBoxTabAdapter(private val activity: Activity) :
}
holder.tvReportTime.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
var resultStr = "类型:"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
// var resultStr = "类型:"
var resultStr = StringUtils.getString(R.string.module_core_type)
for (result in reportEntity.resultList) {
resultStr =
"${resultStr}${CallerAutoPilotControlManager.getReportResultDesc(result)}"
}
holder.tvReportType.text = resultStr
holder.tvReportReason.text = "原因:${reportEntity.msg}"
holder.tvReportSrc.text = "消息来源:${reportEntity.src}"
// holder.tvReportReason.text = "原因:${reportEntity.msg}"
holder.tvReportReason.text = "${StringUtils.getString(R.string.module_core_cause1)}${reportEntity.msg}"
// holder.tvReportSrc.text = "消息来源:${reportEntity.src}"
holder.tvReportSrc.text = "${StringUtils.getString(R.string.module_core_message_source)}${reportEntity.src}"
var actionStr = ""
for (action in reportEntity.actionsList) {
actionStr =
"${actionStr}${CallerAutoPilotControlManager.getReportActionDesc(action)}"
}
holder.tvReportAction.text = "建议操作:$actionStr"
// holder.tvReportAction.text = "建议操作:$actionStr"
holder.tvReportAction.text = "${StringUtils.getString(R.string.module_core_suggested_procedure)}$actionStr"
holder.tvReportShowStatus.tag = reportEntity
if(reportEntity.isShow){
holder.tvReportShowStatus.text = "收起"
// holder.tvReportShowStatus.text = "收起"
holder.tvReportShowStatus.text = StringUtils.getString(R.string.module_core_pack_up)
holder.tvReportReason.visibility = View.VISIBLE
holder.tvReportSrc.visibility = View.VISIBLE
holder.tvReportAction.visibility = View.VISIBLE
}else{
holder.tvReportShowStatus.text = "展开"
// holder.tvReportShowStatus.text = "展开"
holder.tvReportShowStatus.text = StringUtils.getString(R.string.module_core_unfold)
holder.tvReportReason.visibility = View.GONE
holder.tvReportSrc.visibility = View.GONE
holder.tvReportAction.visibility = View.GONE
@@ -409,13 +435,15 @@ class MsgBoxTabAdapter(private val activity: Activity) :
holder.tvReportShowStatus.setOnClickListener {
if (!reportEntity.isShow) {
reportEntity.isShow = true
holder.tvReportShowStatus.text = "收起"
// holder.tvReportShowStatus.text = "收起"
holder.tvReportShowStatus.text = StringUtils.getString(R.string.module_core_pack_up)
holder.tvReportReason.visibility = View.VISIBLE
holder.tvReportSrc.visibility = View.VISIBLE
holder.tvReportAction.visibility = View.VISIBLE
} else {
reportEntity.isShow = false
holder.tvReportShowStatus.text = "展开"
// holder.tvReportShowStatus.text = "展开"
holder.tvReportShowStatus.text = StringUtils.getString(R.string.module_core_unfold)
holder.tvReportReason.visibility = View.GONE
holder.tvReportSrc.visibility = View.GONE
holder.tvReportAction.visibility = View.GONE
@@ -580,7 +608,8 @@ class MsgBoxTabAdapter(private val activity: Activity) :
holder.tvOTATitle.text = otaMsg.title
holder.tvOTAContent.text = otaMsg.des
holder.tvOTATime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat())
if(otaMsg.type == "成功"){
// if(otaMsg.type == "成功"){
if(otaMsg.type == StringUtils.getString(R.string.module_core_succeed)){
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_success))
}else{
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_fail))

View File

@@ -28,6 +28,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.common.MessageType
@@ -384,7 +385,8 @@ class ToolStopServiceView @JvmOverloads constructor(
if (receivedAck.status == ReceivedAck.Status.NORMAL) {
//一键停服命令回执成功则正常进入停服阶段中1分钟倒计时并且TTS和消息盒子提示
CallerDevaToolsManager.setPowerOffStatus(2)
AIAssist.getInstance(context).speakTTSVoice("请等待1分钟再执行车辆下电")
// AIAssist.getInstance(context).speakTTSVoice("请等待1分钟再执行车辆下电")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_one_minute_later_power_off))
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(

View File

@@ -2,6 +2,8 @@ package com.mogo.eagle.core.function.hmi.notification
import android.content.Context
import android.util.Log
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.StringUtils
import java.util.concurrent.ConcurrentHashMap
/**
@@ -26,7 +28,8 @@ internal object WarningFloatWindowManager {
} else {
Log.w(TAG, "存在相同的tag延长弹窗时间")
// 存在相同的tag直接创建失败
config.callbacks?.createdResult(false, "存在相同的tag延长弹窗时间", null)
// config.callbacks?.createdResult(false, "存在相同的tag延长弹窗时间", null)
config.callbacks?.createdResult(false, StringUtils.getString(R.string.module_core_have_tag_lengthen_popup_window_time), null)
windowMap[config.floatTag!!]?.resetDownTime()
return false
}

View File

@@ -25,6 +25,7 @@ import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
@@ -51,11 +52,13 @@ class CameraListView : FrameLayout {
GSYVideoOptionBuilder()
}
private val spannableStringBuilder by lazy {
SpannableStringBuilder("当前设备暂无信号,切换其他摄像头 3S")
// SpannableStringBuilder("当前设备暂无信号,切换其他摄像头 3S")
SpannableStringBuilder(StringUtils.getString(R.string.module_core_no_signal_switch_camera))
}
private val spannableStringBuilder2 by lazy {
SpannableStringBuilder("当前路口信号丢失3S 后自动关闭")
// SpannableStringBuilder("当前路口信号丢失3S 后自动关闭")
SpannableStringBuilder(StringUtils.getString(R.string.module_core_alert_intersection_signal_lost_auto_close))
}
private var isCloseStatus = true

View File

@@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.diskcopy.adapter.DiskCopyCalendarAdapter
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import kotlinx.android.synthetic.main.view_disk_copy.view.groupDateSelect
@@ -174,52 +175,71 @@ class DiskCopyView @JvmOverloads constructor(
val formatIpc = SimpleDateFormat("yyyyMMdd", Locale.CHINA)
val formatUi = SimpleDateFormat("yyyy.MM.dd",Locale.CHINA)
//添加日历星期标题头
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
// calendarList.add(CopyCalendarInfo(true,"日"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_sunday)))
// calendarList.add(CopyCalendarInfo(true,"一"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_monday)))
// calendarList.add(CopyCalendarInfo(true,"二"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_tuesday)))
// calendarList.add(CopyCalendarInfo(true,"三"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_wednesday)))
// calendarList.add(CopyCalendarInfo(true,"四"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_thursday)))
// calendarList.add(CopyCalendarInfo(true,"五"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_friday)))
// calendarList.add(CopyCalendarInfo(true,"六"))
calendarList.add(CopyCalendarInfo(true,StringUtils.getString(R.string.module_core_saturday)))
val calendar: Calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"))
val currentMonth = calendar.get(Calendar.MONTH)
tvCurrentMonth.text = when(currentMonth){
Calendar.JANUARY->{
"一月"
// "一月"
StringUtils.getString(R.string.module_core_january)
}
Calendar.FEBRUARY->{
"二月"
// "二月"
StringUtils.getString(R.string.module_core_february)
}
Calendar.MARCH->{
"三月"
// "三月"
StringUtils.getString(R.string.module_core_march)
}
Calendar.APRIL->{
"四月"
// "四月"
StringUtils.getString(R.string.module_core_april)
}
Calendar.MAY->{
"五月"
// "五月"
StringUtils.getString(R.string.module_core_may)
}
Calendar.JUNE->{
"六月"
// "六月"
StringUtils.getString(R.string.module_core_june)
}
Calendar.JULY->{
"七月"
// "七月"
StringUtils.getString(R.string.module_core_july)
}
Calendar.AUGUST->{
"八月"
// "八月"
StringUtils.getString(R.string.module_core_august)
}
Calendar.SEPTEMBER->{
"九月"
// "九月"
StringUtils.getString(R.string.module_core_september)
}
Calendar.OCTOBER->{
"十月"
// "十月"
StringUtils.getString(R.string.module_core_october)
}
Calendar.NOVEMBER->{
"十一月"
// "十一月"
StringUtils.getString(R.string.module_core_november)
}
Calendar.DECEMBER->{
"十二月"
// "十二月"
StringUtils.getString(R.string.module_core_december)
}
else -> {
""
@@ -391,31 +411,38 @@ class DiskCopyView @JvmOverloads constructor(
return when(currentWeek){
//星期日
Calendar.SUNDAY->{
"周日"
// "周日"
StringUtils.getString(R.string.module_core_sunday1)
}
//星期一
Calendar.MONDAY->{
"周一"
// "周一"
StringUtils.getString(R.string.module_core_monday1)
}
//星期二
Calendar.TUESDAY->{
"周二"
// "周二"
StringUtils.getString(R.string.module_core_tuesday1)
}
//星期三
Calendar.WEDNESDAY->{
"周三"
// "周三"
StringUtils.getString(R.string.module_core_wednesday1)
}
//星期四
Calendar.THURSDAY->{
"周四"
// "周四"
StringUtils.getString(R.string.module_core_thursday1)
}
//星期五
Calendar.FRIDAY->{
"周五"
// "周五"
StringUtils.getString(R.string.module_core_friday1)
}
//星期六
Calendar.SATURDAY->{
"周六"
// "周六"
StringUtils.getString(R.string.module_core_saturday1)
}
else->{
""

View File

@@ -37,6 +37,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.DriverMsgBoxBubbleAdapter
import com.mogo.eagle.core.function.msgbox.MsgBoxConfig
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.AdasConstants.NodeState
@@ -219,7 +220,8 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor(
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
"识别车辆故障,建议安全停车并查看操作建议",
// "识别车辆故障,建议安全停车并查看操作建议",
StringUtils.getString(R.string.module_core_warning_vehicle_fault_safe_park),
object : IMoGoWarningStatusListener {
override fun onShow() {
CallerTakeOverManager.invokeTakeOverEvent(true)
@@ -236,7 +238,8 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor(
//二级
MsgFmData.LEVEL_TWO->{
//语音提示
AIAssist.getInstance(context).speakTTSVoice("识别车辆异常,建议尽快安全停车,查看操作建议")
// AIAssist.getInstance(context).speakTTSVoice("识别车辆异常,建议尽快安全停车,查看操作建议")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_warning_vehicle_abnormal_safe_park))
//展示消息盒子消息
showData(msgBoxBean)
}

View File

@@ -35,6 +35,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.MsgBoxToastAdapter
import com.mogo.eagle.core.function.msgbox.MsgBoxConfig
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import kotlinx.android.synthetic.main.layout_msg_box_bubble.view.llMsgBubbleLayout
import kotlinx.android.synthetic.main.layout_msg_box_bubble.view.rvBubbleList
@@ -210,7 +211,8 @@ class MsgBoxToastView @JvmOverloads constructor(
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
"识别车辆故障,建议安全停车并查看操作建议",
// "识别车辆故障,建议安全停车并查看操作建议",
StringUtils.getString(R.string.module_core_warning_vehicle_fault_safe_park),
object : IMoGoWarningStatusListener {
override fun onShow() {
CallerTakeOverManager.invokeTakeOverEvent(true)
@@ -227,7 +229,8 @@ class MsgBoxToastView @JvmOverloads constructor(
//二级
MsgFmData.LEVEL_TWO->{
//语音提示
AIAssist.getInstance(context).speakTTSVoice("识别车辆异常,建议尽快安全停车,查看操作建议")
// AIAssist.getInstance(context).speakTTSVoice("识别车辆异常,建议尽快安全停车,查看操作建议")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_warning_vehicle_abnormal_safe_park))
//展示消息盒子消息
showData(msgBoxBean)
}

View File

@@ -22,6 +22,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp
import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat
import com.mogo.eagle.core.widget.RoundCanClickConstraintLayout
@@ -176,9 +177,11 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
data?.let {
val msgBoxBean = it[position].msgBoxBean
val reportEntity = msgBoxBean.bean as ReportEntity
holder.tvBubbleReportTime.text = "时间:${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
// holder.tvBubbleReportTime.text = "时间:${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
holder.tvBubbleReportTime.text = "${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
holder.tvBubbleReceiveTime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat())
var resultStr = "类型:"
// var resultStr = "类型:"
var resultStr = StringUtils.getString(R.string.module_core_type)
for (result in reportEntity.resultList){
resultStr = "${resultStr}${CallerAutoPilotControlManager.getReportResultDesc(result)}"
}
@@ -274,7 +277,8 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
holder.tvBubbleFmTime.text = TimeUtils.millis2String(fmMsg.policyTime!!,getHourMinFormat())
}
if(fmMsg.fmInfoList?.size == 0){
holder.tvBubbleFmFaultAction.text = "建议操作:暂无"
// holder.tvBubbleFmFaultAction.text = "建议操作:暂无"
holder.tvBubbleFmFaultAction.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
holder.tvBubbleFmFault.text = MsgFmData.getFmPolicyName(fmMsg.policyCode)
}else{
var curFaultLevel = 5 //默认级别遍历数组找出级别最高的level数越小级别越高
@@ -293,7 +297,8 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
//当出现多个建议操作时,按照整车下电重启、请求人工驾驶接管、请求平行驾驶接管、系统重启、联系硬件工程师、
// 联系运维工程师、联系软件工程师优先级递减的顺序,只展示最高优先级的内容
if(curFaultLevel == 5){
holder.tvBubbleFmFaultAction.text = "建议操作:暂无"
// holder.tvBubbleFmFaultAction.text = "建议操作:暂无"
holder.tvBubbleFmFaultAction.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
}else{
holder.tvBubbleFmFaultAction.text = "${faultAction}(${MsgFmData.FaultAction.getFaultActionCode(curFaultLevel)})"
}
@@ -359,7 +364,8 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
holder.tvOTATitle.text = otaMsg.title
holder.tvOTAContent.text = otaMsg.des
holder.tvOTATime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat())
if(otaMsg.type == "成功"){
// if(otaMsg.type == "成功"){
if(otaMsg.type == StringUtils.getString(R.string.module_core_succeed)){
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_success))
}else{
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_fail))

View File

@@ -21,6 +21,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp
import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -172,7 +173,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
holder.tvBagReceiveTime.text =
TimeUtils.millis2String(it[position].timestamp, getHourMinFormat())
holder.tvBagRecordTime.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
val msgBoxBean = it[position]
val recordBagMsg = msgBoxBean.bean as RecordBagMsg
holder.tvRecordCheck.setOnClickListener {
@@ -193,19 +195,25 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
val fmInfoMsg = it[position].bean as FMInfoMsg
//时间显示
holder.tvFmTimeOpen.text =
"时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
// "时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
"${StringUtils.getString(R.string.module_core_time)}${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
holder.tvFmTimeNormal.text =
"时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
// "时间:${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
"${StringUtils.getString(R.string.module_core_time)}${fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1) }}"
holder.tvFmTime.text =
fmInfoMsg.policyTime?.let { it1 -> TimeUtils.millis2String(it1,getHourMinFormat()) }
//建议操作
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
//建议操作暂无
holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionNormal.text = "建议操作:暂无"
// holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionOpen.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
// holder.tvFmActionNormal.text = "建议操作:暂无"
holder.tvFmActionNormal.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
//Title
holder.tvFmTitleNormal.text = "暂无建议操作"
holder.tvFmTitleOpen.text = "暂无建议操作"
// holder.tvFmTitleNormal.text = "暂无建议操作"
holder.tvFmTitleNormal.text = StringUtils.getString(R.string.module_core_not_available_suggested_procedure)
// holder.tvFmTitleOpen.text = "暂无建议操作"
holder.tvFmTitleOpen.text = StringUtils.getString(R.string.module_core_not_available_suggested_procedure)
}else{
val receiveFaultLevel = ArrayList<Int>()
fmInfoMsg.fmInfoList!!.forEach { info ->
@@ -221,7 +229,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
//对faultLevel集合进行排序按照顺序输出建议操作
if(receiveFaultLevel.size > 0){
val faultActionStr: StringBuilder = StringBuilder()
faultActionStr.append("建议操作:")
// faultActionStr.append("建议操作:")
faultActionStr.append(StringUtils.getString(R.string.module_core_suggested_procedure))
receiveFaultLevel.sort()
// receiveFaultLevel.reverse()
//Title
@@ -265,25 +274,32 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
holder.tvFmActionOpen.text = faultActionStr.toString()
holder.tvFmActionNormal.text = faultActionStr.toString()
}else{
holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionNormal.text = "建议操作:暂无"
// holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionOpen.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
// holder.tvFmActionNormal.text = "建议操作:暂无"
holder.tvFmActionNormal.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
}
}else{
holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionNormal.text = "建议操作:暂无"
// holder.tvFmActionOpen.text = "建议操作:暂无"
holder.tvFmActionOpen.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
// holder.tvFmActionNormal.text = "建议操作:暂无"
holder.tvFmActionNormal.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
//轻度预警样式
holder.ivFmImageNormal.setImageDrawable(getDrawable(R.drawable.icon_fm_warning_normal))
holder.ivFmImageOpen.setImageDrawable(getDrawable(R.drawable.icon_fm_warning_open))
}
}
//故障策略
holder.tvFmFaultOpen.text = "故障策略:${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
// holder.tvFmFaultOpen.text = "故障策略:${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
holder.tvFmFaultOpen.text = "${StringUtils.getString(R.string.module_core_fault_handling_strategy)}${MsgFmData.getFmPolicyName(fmInfoMsg.policyCode)}(${fmInfoMsg.policyCode})"
//故障原因
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
holder.tvFmReasonOpen.text = "故障原因:暂无"
// holder.tvFmReasonOpen.text = "故障原因:暂无"
holder.tvFmReasonOpen.text = StringUtils.getString(R.string.module_core_failure_cause_not_available)
}else{
val fmFaultReason = StringBuilder()
fmFaultReason.append("故障原因:")
// fmFaultReason.append("故障原因:")
fmFaultReason.append(StringUtils.getString(R.string.module_core_failure_cause))
for((index,info) in fmInfoMsg.fmInfoList!!.withIndex()){
fmFaultReason.append(info.faultName)
if(info.faultId.isNotBlank()){
@@ -299,10 +315,12 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
}
//故障后果
if(fmInfoMsg.fmInfoList.isNullOrEmpty()){
holder.tvFmResultOpen.text = "故障后果:暂无"
// holder.tvFmResultOpen.text = "故障后果:暂无"
holder.tvFmResultOpen.text = StringUtils.getString(R.string.module_core_consequences_failure_not_available)
}else{
val fmFaultResult = StringBuilder()
fmFaultResult.append("故障后果:")
// fmFaultResult.append("故障后果:")
fmFaultResult.append(StringUtils.getString(R.string.module_core_consequences_failure))
fmInfoMsg.fmInfoList!!.forEach { info->
if(info.faultResultCount != 0){
info.faultResultList.forEach { result->
@@ -323,7 +341,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
if(fmFaultResult.endsWith("/")){
holder.tvFmResultOpen.text = fmFaultResult.deleteCharAt(fmFaultResult.lastIndex).toString()
}else{
holder.tvFmResultOpen.text = "故障后果:暂无"
// holder.tvFmResultOpen.text = "故障后果:暂无"
holder.tvFmResultOpen.text = StringUtils.getString(R.string.module_core_consequences_failure_not_available)
}
}
//对布局进行展开折叠操作
@@ -334,7 +353,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvFmStatusSelect.text = "折叠"
// holder.tvFmStatusSelect.text = "折叠"
holder.tvFmStatusSelect.text = StringUtils.getString(R.string.module_core_fold)
holder.ivFmImageNormal.visibility = View.GONE
holder.tvFmTitleNormal.visibility = View.GONE
holder.tvFmTimeNormal.visibility = View.GONE
@@ -353,7 +373,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvFmStatusSelect.text = "展开"
// holder.tvFmStatusSelect.text = "展开"
holder.tvFmStatusSelect.text = StringUtils.getString(R.string.module_core_unfold)
holder.ivFmImageNormal.visibility = View.VISIBLE
holder.tvFmTitleNormal.visibility = View.VISIBLE
holder.tvFmTimeNormal.visibility = View.VISIBLE
@@ -375,7 +396,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvFmStatusSelect.text = "折叠"
// holder.tvFmStatusSelect.text = "折叠"
holder.tvFmStatusSelect.text = StringUtils.getString(R.string.module_core_fold)
holder.ivFmImageNormal.visibility = View.GONE
holder.tvFmTitleNormal.visibility = View.GONE
holder.tvFmTimeNormal.visibility = View.GONE
@@ -395,7 +417,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvFmStatusSelect.text = "展开"
// holder.tvFmStatusSelect.text = "展开"
holder.tvFmStatusSelect.text = StringUtils.getString(R.string.module_core_unfold)
holder.ivFmImageNormal.visibility = View.VISIBLE
holder.tvFmTitleNormal.visibility = View.VISIBLE
holder.tvFmTimeNormal.visibility = View.VISIBLE
@@ -416,9 +439,11 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
data?.let { it ->
val reportMsgBox = it[position]
holder.tvReportTimeNormal.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
holder.tvReportTimeOpen.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
val reportEntity = (it[position].bean as ReportEntity)
if (reportEntity.resultList.contains(RESULT_AUTOPILOT_DISABLE)
|| reportEntity.resultList.contains(RESULT_AUTOPILOT_SYSTEM_UNSTARTED)
@@ -447,26 +472,32 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
}
holder.tvReportTimeNormal.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
holder.tvReportTimeOpen.text =
"时间:${TimeUtils.millis2String(it[position].timestamp)}"
// "时间:${TimeUtils.millis2String(it[position].timestamp)}"
"${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].timestamp)}"
holder.tvReportTime.text =
TimeUtils.millis2String(it[position].timestamp, getHourMinFormat())
var resultStr = "类型:"
// var resultStr = "类型:"
var resultStr = StringUtils.getString(R.string.module_core_type)
for (result in reportEntity.resultList) {
resultStr =
"${resultStr}${CallerAutoPilotControlManager.getReportResultDesc(result)}"
}
holder.tvReportTypeNormal.text = resultStr
holder.tvReportTypeOpen.text = resultStr
holder.tvReportReasonOpen.text = "原因:${reportEntity.msg}"
holder.tvReportSrcOpen.text = "消息来源:${reportEntity.src}"
// holder.tvReportReasonOpen.text = "原因:${reportEntity.msg}"
holder.tvReportReasonOpen.text = "${StringUtils.getString(R.string.module_core_cause1)}${reportEntity.msg}"
// holder.tvReportSrcOpen.text = "消息来源:${reportEntity.src}"
holder.tvReportSrcOpen.text = "${StringUtils.getString(R.string.module_core_message_source)}${reportEntity.src}"
var actionStr = ""
for (action in reportEntity.actionsList) {
actionStr =
"${actionStr}${CallerAutoPilotControlManager.getReportActionDesc(action)}"
}
holder.tvReportActionOpen.text = "建议操作:$actionStr"
// holder.tvReportActionOpen.text = "建议操作:$actionStr"
holder.tvReportActionOpen.text = "${StringUtils.getString(R.string.module_core_suggested_procedure)}$actionStr"
holder.tvStatusSelect.tag = reportEntity
if(reportEntity.isShow){
holder.tvStatusSelect.setCompoundDrawablesWithIntrinsicBounds(
@@ -475,7 +506,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvStatusSelect.text = "折叠"
// holder.tvStatusSelect.text = "折叠"
holder.tvStatusSelect.text = StringUtils.getString(R.string.module_core_fold)
holder.ivReportImageNormal.visibility = View.GONE
holder.tvReportLevelNormal.visibility = View.GONE
holder.tvReportTimeNormal.visibility = View.GONE
@@ -495,7 +527,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvStatusSelect.text = "展开"
// holder.tvStatusSelect.text = "展开"
holder.tvStatusSelect.text = StringUtils.getString(R.string.module_core_unfold)
holder.ivReportImageNormal.visibility = View.VISIBLE
holder.tvReportLevelNormal.visibility = View.VISIBLE
holder.tvReportTimeNormal.visibility = View.VISIBLE
@@ -518,7 +551,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvStatusSelect.text = "折叠"
// holder.tvStatusSelect.text = "折叠"
holder.tvStatusSelect.text = StringUtils.getString(R.string.module_core_fold)
holder.ivReportImageNormal.visibility = View.GONE
holder.tvReportLevelNormal.visibility = View.GONE
holder.tvReportTimeNormal.visibility = View.GONE
@@ -539,7 +573,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvStatusSelect.text = "展开"
// holder.tvStatusSelect.text = "展开"
holder.tvStatusSelect.text = StringUtils.getString(R.string.module_core_unfold)
holder.ivReportImageNormal.visibility = View.VISIBLE
holder.tvReportLevelNormal.visibility = View.VISIBLE
holder.tvReportTimeNormal.visibility = View.VISIBLE
@@ -577,7 +612,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvOperationStatusSelect.text = "折叠"
// holder.tvOperationStatusSelect.text = "折叠"
holder.tvOperationStatusSelect.text = StringUtils.getString(R.string.module_core_fold)
holder.ivOperationImageNormal.visibility = View.GONE
holder.tvOperationTitleNormal.visibility = View.GONE
holder.tvOperationContentNormal.visibility = View.GONE
@@ -592,7 +628,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
null,
null
)
holder.tvOperationStatusSelect.text = "展开"
// holder.tvOperationStatusSelect.text = "展开"
holder.tvOperationStatusSelect.text = StringUtils.getString(R.string.module_core_unfold)
holder.ivOperationImageNormal.visibility = View.VISIBLE
holder.tvOperationTitleNormal.visibility = View.VISIBLE
holder.tvOperationContentNormal.visibility = View.VISIBLE
@@ -746,7 +783,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) :
holder.tvOTATitle.text = otaMsg.title
holder.tvOTAContent.text = otaMsg.des
holder.tvOTATime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat())
if(otaMsg.type == "成功"){
// if(otaMsg.type == "成功"){
if(otaMsg.type == StringUtils.getString(R.string.module_core_succeed)){
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_success))
}else{
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_fail))

View File

@@ -37,6 +37,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp
import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat
import com.mogo.eagle.core.widget.RoundCanClickConstraintLayout
@@ -101,9 +102,11 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
data?.let {
val msgBoxBean = it[position].msgBoxBean
val reportEntity = msgBoxBean.bean as ReportEntity
holder.tvBubbleReportTime.text = "时间:${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
// holder.tvBubbleReportTime.text = "时间:${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
holder.tvBubbleReportTime.text = "${StringUtils.getString(R.string.module_core_time)}${TimeUtils.millis2String(it[position].msgBoxBean.timestamp)}"
holder.tvBubbleReceiveTime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat())
var resultStr = "类型:"
// var resultStr = "类型:"
var resultStr = StringUtils.getString(R.string.module_core_type)
for (result in reportEntity.resultList){
resultStr = "${resultStr}${CallerAutoPilotControlManager.getReportResultDesc(result)}"
}
@@ -176,7 +179,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
val otaMsg = it[position].msgBoxBean.bean as OTAMsg
holder.tvOTATitle.text = otaMsg.title
holder.tvOTAContent.text = otaMsg.des
if(otaMsg.type == "成功"){
// if(otaMsg.type == "成功"){
if(otaMsg.type == StringUtils.getString(R.string.module_core_succeed)){
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_success))
}else{
holder.ivOTAImage.setImageDrawable(getDrawable(R.drawable.icon_ota_msg_fail))
@@ -230,7 +234,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
//FM信息
val fmMsg = it[position].msgBoxBean.bean as FMInfoMsg
if(fmMsg.fmInfoList?.size == 0){
holder.tvV2XContent.text = "建议操作:暂无"
// holder.tvV2XContent.text = "建议操作:暂无"
holder.tvV2XContent.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
holder.tvV2XTitle.text = MsgFmData.getFmPolicyName(fmMsg.policyCode)
}else{
var curFaultLevel = 5 //默认级别遍历数组找出级别最高的level数越小级别越高
@@ -249,7 +254,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
//当出现多个建议操作时,按照整车下电重启、请求人工驾驶接管、请求平行驾驶接管、系统重启、联系硬件工程师、
// 联系运维工程师、联系软件工程师优先级递减的顺序,只展示最高优先级的内容
if(curFaultLevel == 5){
holder.tvV2XContent.text = "建议操作:暂无"
// holder.tvV2XContent.text = "建议操作:暂无"
holder.tvV2XContent.text = StringUtils.getString(R.string.module_core_suggested_procedure_not_available)
}else{
holder.tvV2XContent.text = "${faultAction}(${MsgFmData.FaultAction.getFaultActionCode(curFaultLevel)})"
}
@@ -286,7 +292,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
when(operationMsg.type){
0->{
//运营平台还车通知
holder.tvV2XTitle.text = "还车通知"
// holder.tvV2XTitle.text = "还车通知"
holder.tvV2XTitle.text = StringUtils.getString(R.string.module_core_vehicle_return_notice)
holder.ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
activity,
@@ -295,7 +302,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
}
1->{
//运营平台靠边停车
holder.tvV2XTitle.text = "运营平台"
// holder.tvV2XTitle.text = "运营平台"
holder.tvV2XTitle.text = StringUtils.getString(R.string.module_core_operation_platform)
holder.ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
activity,
@@ -304,7 +312,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
}
3->{
//车门开启关闭失败
holder.tvV2XTitle.text = "运营平台"
// holder.tvV2XTitle.text = "运营平台"
holder.tvV2XTitle.text = StringUtils.getString(R.string.module_core_operation_platform)
holder.ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
activity,
@@ -313,7 +322,8 @@ class MsgBoxToastAdapter(private val activity: Activity) : RecyclerView.Adapter<
}
else->{
//普通运营平台
holder.tvV2XTitle.text = "运营平台"
// holder.tvV2XTitle.text = "运营平台"
holder.tvV2XTitle.text = StringUtils.getString(R.string.module_core_operation_platform)
holder.ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
activity,

View File

@@ -12,6 +12,7 @@ import androidx.annotation.NonNull;
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean;
import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.utilcode.util.StringUtils;
public class DispatchCarsDialog extends DispatchBaseDialog {
@@ -99,8 +100,10 @@ public class DispatchCarsDialog extends DispatchBaseDialog {
show();
if(dispatchContent.getType() == 2){
//取消调度
tvAdasDispatchTitle.setText("调度取消确认");
tvAdasDispatchRemindContent.setText("车辆将取消到以下位置的自动驾驶");
// tvAdasDispatchTitle.setText("调度取消确认");
tvAdasDispatchTitle.setText(StringUtils.getString(R.string.module_core_scheduling_cancellation_confirmation));
// tvAdasDispatchRemindContent.setText("车辆将取消到以下位置的自动驾驶");
tvAdasDispatchRemindContent.setText(StringUtils.getString(R.string.module_core_vehicle_cancel_autopilot_target_location));
}
dispatchType = dispatchContent.getType();
handler.sendEmptyMessage(MSG_TYPE_TIMER);

View File

@@ -10,6 +10,8 @@ import android.content.Context;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.utilcode.util.StringUtils;
public class DispatchDialogManager {
@@ -108,7 +110,8 @@ public class DispatchDialogManager {
}
private void voice() {
AIAssist.getInstance(mContext).speakTTSVoiceWithLevel("请立即停车!请立即停车!",AIAssist.LEVEL0);
// AIAssist.getInstance(mContext).speakTTSVoiceWithLevel("请立即停车!请立即停车!",AIAssist.LEVEL0);
AIAssist.getInstance(mContext).speakTTSVoiceWithLevel(StringUtils.getString(R.string.module_core_immediate_stop_vehicle),AIAssist.LEVEL0);
}
public void releaseDialog() {

View File

@@ -168,7 +168,8 @@ open class AutomaticExplorationView @JvmOverloads constructor(
rotationAnim?.cancel()
//语音播放,只在司机端播放
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){
AIAssist.getInstance(context).speakTTSVoice("正为您探查道路情况")
// AIAssist.getInstance(context).speakTTSVoice("正为您探查道路情况")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_probing_road_condition_for_you))
}
//5秒后关闭弹窗
val hideViewTimer =object: CountDownTimer(EXPLORATION_HIDE_TIME,EXPLORATION_HIDE_TIME){

View File

@@ -32,6 +32,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.BitmapHelper
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
@@ -360,41 +361,50 @@ class NoticeTrafficDialog : BaseFloatDialog, LifecycleObserver {
dataArrayList.clear()
}
val laiYuan = NoticeValue()
laiYuan.key = "事故来源:"
// laiYuan.key = "事故来源:"
laiYuan.key = StringUtils.getString(R.string.module_core_accident_source)
laiYuan.value = info!!.uploadType
dataArrayList.add(laiYuan)
val cTime = NoticeValue()
cTime.key = "事故时间:"
// cTime.key = "事故时间:"
cTime.key = StringUtils.getString(R.string.module_core_accident_time)
cTime.value = DateTimeUtils.getTimeText(
info.dataCreateTime,
DateTimeUtils.MM_Yue_dd_Ri_HH_mm
)
dataArrayList.add(cTime)
val hTime = NoticeValue()
hTime.key = "处理时间:"
// hTime.key = "处理时间:"
hTime.key = StringUtils.getString(R.string.module_core_processing_time)
hTime.value = DateTimeUtils.getTimeText(
info.dataHandleTime,
DateTimeUtils.MM_Yue_dd_Ri_HH_mm
)
dataArrayList.add(hTime)
val reason = NoticeValue()
reason.key = "事故原因:"
// reason.key = "事故原因:"
reason.key = StringUtils.getString(R.string.module_core_accident_cause)
reason.value = info.reason
dataArrayList.add(reason)
val status = NoticeValue()
status.key = "处理状态:"
// status.key = "处理状态:"
status.key = StringUtils.getString(R.string.module_core_treatment_state)
if (info.operaStatus == "1") {
status.value = "待处理"
// status.value = "待处理"
status.value = StringUtils.getString(R.string.module_core_pending)
} else {
status.value = "已处理"
// status.value = "已处理"
status.value = StringUtils.getString(R.string.module_core_processed)
}
dataArrayList.add(status)
val location = NoticeValue()
location.key = "事故地点:"
// location.key = "事故地点:"
location.key = StringUtils.getString(R.string.module_core_accident_spot)
location.value = info.uploadAddress
dataArrayList.add(location)
val style = NoticeValue()
style.key = "事故等级:"
// style.key = "事故等级:"
style.key = StringUtils.getString(R.string.module_core_accident_grade)
style.value = info.troubleTypeName
dataArrayList.add(style)
adapter!!.setData(dataArrayList)

View File

@@ -15,6 +15,7 @@ import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.widget.TypefaceTextView
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
/**
@@ -260,17 +261,22 @@ class TrafficLightPromptView @JvmOverloads constructor(
when (user) {
0 -> {
//司机端提示
tvPromptTitle?.text = "即将绿灯"
tvPromptContent?.text = "请准备出发"
// tvPromptTitle?.text = "即将绿灯"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_green_light)
// tvPromptContent?.text = "请准备出发"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_prepare_to_depart)
}
1 -> {
//TAXI乘客端提示
tvPromptContent?.text = "即将绿灯,请准备出发"
// tvPromptContent?.text = "即将绿灯,请准备出发"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_upcoming_green_light_prepare_to_depart)
}
else -> {
//BUS乘客端提示
tvPromptTitle?.text = "即将绿灯,"
tvPromptContent?.text = "请准备出发"
// tvPromptTitle?.text = "即将绿灯,"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_green_light1)
// tvPromptContent?.text = "请准备出发"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_prepare_to_depart)
}
}
}
@@ -278,17 +284,22 @@ class TrafficLightPromptView @JvmOverloads constructor(
when (user) {
0 -> {
//司机端提示
tvPromptTitle?.text = "即将红灯"
tvPromptContent?.text = "请减速慢行"
// tvPromptTitle?.text = "即将红灯"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_red_light)
// tvPromptContent?.text = "请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_warning_slow_down)
}
1 -> {
//TAXI乘客端提示
tvPromptContent?.text = "即将红灯,请减速慢行"
// tvPromptContent?.text = "即将红灯,请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_upcoming_red_light_warning_slow_down)
}
else -> {
//BUS乘客端提示
tvPromptTitle?.text = "即将红灯,"
tvPromptContent?.text = "请减速慢行"
// tvPromptTitle?.text = "即将红灯,"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_red_light1)
// tvPromptContent?.text = "请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_warning_slow_down)
}
}
}
@@ -296,17 +307,22 @@ class TrafficLightPromptView @JvmOverloads constructor(
when (user) {
0 -> {
//司机端提示
tvPromptTitle?.text = "即将黄灯"
tvPromptContent?.text = "请减速慢行"
// tvPromptTitle?.text = "即将黄灯"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_yellow_light)
// tvPromptContent?.text = "请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_warning_slow_down)
}
1 -> {
//TAXI乘客端提示
tvPromptContent?.text = "即将红灯,请减速慢行"
// tvPromptContent?.text = "即将红灯,请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_upcoming_yellow_light_warning_slow_down)
}
else -> {
//BUS乘客端提示
tvPromptTitle?.text = "即将黄灯,"
tvPromptContent?.text = "请减速慢行"
// tvPromptTitle?.text = "即将黄灯,"
tvPromptTitle?.text = StringUtils.getString(R.string.module_core_upcoming_yellow_light1)
// tvPromptContent?.text = "请减速慢行"
tvPromptContent?.text = StringUtils.getString(R.string.module_core_warning_slow_down)
}
}
}

View File

@@ -39,6 +39,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.data.AdasConstants
@@ -940,7 +941,8 @@ internal class SOPSettingView @JvmOverloads constructor(
if (mf != null) {
mfStatusLayout.setClickEnabled(true)
mfStatusLayout.setClickedTextAndTag(
if (mf.isConnected()) "断开魔方连接" else "开始连接魔方",
// if (mf.isConnected()) "断开魔方连接" else "开始连接魔方",
if (mf.isConnected()) StringUtils.getString(R.string.module_core_disconnect_mofang) else StringUtils.getString(R.string.module_core_connect_mofang),
if (mf.isConnected()) 0 else 1
)
mf.registerMoFangStatusListener(TAG, this)
@@ -954,7 +956,8 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnClickCallback
}
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在断开魔方连接, 请稍候...")
// mfStatusLayout.setLoadingViewText("正在断开魔方连接, 请稍候...")
mfStatusLayout.setLoadingViewText(StringUtils.getString(R.string.module_core_disconnecting_mofang))
mf.disconnect()
}
if (tag == 1) {
@@ -966,7 +969,8 @@ internal class SOPSettingView @JvmOverloads constructor(
}
mf.connect()
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在连接魔方, 请稍候")
// mfStatusLayout.setLoadingViewText("正在连接魔方, 请稍候")
mfStatusLayout.setLoadingViewText(StringUtils.getString(R.string.module_core_connecting_mofang))
}
}
}
@@ -1060,7 +1064,8 @@ internal class SOPSettingView @JvmOverloads constructor(
override fun onMoFangConnected() {
mfStatusLayout?.also {
it.hideLoadingView()
it.setClickedTextAndTag("断开魔方连接", 0)
// it.setClickedTextAndTag("断开魔方连接", 0)
it.setClickedTextAndTag(StringUtils.getString(R.string.module_core_disconnect_mofang), 0)
mfTest?.isEnabled = true
mfTest?.isChecked = CallerDevaToolsManager.mofang()?.isEnableTest() ?: false
}
@@ -1069,7 +1074,8 @@ internal class SOPSettingView @JvmOverloads constructor(
override fun onMoFangDisconnected() {
mfStatusLayout?.also {
it.hideLoadingView()
it.setClickedTextAndTag("开始连接魔方", 1)
// it.setClickedTextAndTag("开始连接魔方", 1)
it.setClickedTextAndTag(StringUtils.getString(R.string.module_core_connect_mofang), 1)
mfTest?.isEnabled = false
}
}

View File

@@ -30,6 +30,7 @@ import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
import com.mogo.eagle.core.utilcode.kotlin.PX
import com.mogo.eagle.core.utilcode.rv.divider.CommonDividerItemDecoration
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo.adas.data.AdasConstants
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -51,7 +52,8 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
it.add(StatusSummaryEntity(1))
it.add(StatusSummaryEntity(2))
it.add(StatusSummaryEntity(3))
it.add(StatusSummaryEntity(4, "域控未连接", true))
// it.add(StatusSummaryEntity(4, "域控未连接", true))
it.add(StatusSummaryEntity(4, StringUtils.getString(R.string.module_core_ipc_disconnect), true))
it.add(StatusSummaryEntity(5, CallerAutopilotCarConfigListenerManager.getCertFileResult(), CallerCloudCertManager.getRootCrtF().isNullOrEmpty()))
}
}
@@ -114,7 +116,9 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
super.onServerStatusChanged(isStarted)
UiThreadHandler.post({
if (data.size < 1) return@post
data[0].desc = "司机屏Server启动${if (isStarted) "正常" else "异常"}"
// data[0].desc = "司机屏Server启动${if (isStarted) "正常" else "异常"}"
data[0].desc = "${StringUtils.getString(R.string.module_core_driver_server_start)}${
if (isStarted) StringUtils.getString(R.string.module_core_normal) else StringUtils.getString(R.string.module_core_error)}"
data[0].isException = !isStarted
adapter?.notifyItemChanged(0)
}, UiThreadHandler.MODE.QUEUE)
@@ -124,7 +128,8 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
super.gpsStatus(status)
UiThreadHandler.post({
if (data.size < 2) return@post
data[1].desc = "GPS${if (status) "正常" else "异常"}"
// data[1].desc = "GPS${if (status) "正常" else "异常"}"
data[1].desc = "GPS${if (status) StringUtils.getString(R.string.module_core_normal) else StringUtils.getString(R.string.module_core_error)}"
data[1].isException = !status
adapter?.notifyItemChanged(1)
}, UiThreadHandler.MODE.QUEUE)
@@ -137,7 +142,9 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
if (StatusDescriptor.CLOUD_SOCKET == descriptor) {
UiThreadHandler.post({
if (data.size < 3) return@post
data[2].desc = "云Socket连接${if (isTrue) "正常" else "异常"}"
// data[2].desc = "云Socket连接${if (isTrue) "正常" else "异常"}"
data[2].desc = "${StringUtils.getString(R.string.module_core_cloud_socket_connect)}${
if (isTrue) StringUtils.getString(R.string.module_core_normal) else StringUtils.getString(R.string.module_core_error)}"
data[2].isException = !isTrue
adapter?.notifyItemChanged(2)
}, UiThreadHandler.MODE.QUEUE)
@@ -148,7 +155,9 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
super.tracingStatus(status) // 发送事件前限制了频率
UiThreadHandler.post({
if (data.size < 4) return@post
data[3].desc = "寻迹算路${if (status) "正常" else "异常"}"
// data[3].desc = "寻迹算路${if (status) "正常" else "异常"}"
data[3].desc = "${StringUtils.getString(R.string.module_core_trail_tracking_route_calculation)}${
if (status) StringUtils.getString(R.string.module_core_normal) else StringUtils.getString(R.string.module_core_error)}"
data[3].isException = !status
adapter?.notifyItemChanged(3)
}, UiThreadHandler.MODE.QUEUE)
@@ -159,43 +168,53 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
var pair: Pair<String, Boolean>? = null
when (status) {
AdasConstants.IpcConnectionStatus.DISCONNECTED -> {
pair = Pair("域控未连接", true)
// pair = Pair("域控未连接", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_disconnect), true)
}
AdasConstants.IpcConnectionStatus.CONNECTED -> {
pair = Pair("域控已连接", false)
// pair = Pair("域控已连接", false)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_connected), false)
}
AdasConstants.IpcConnectionStatus.CONNECTING -> {
pair = Pair("域控连接中", true)
// pair = Pair("域控连接中", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_connecting), true)
}
AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER, AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK -> {
pair = Pair("域控重连中", true)
// pair = Pair("域控重连中", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_reconnecting), true)
}
AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION -> {
pair = Pair("域控连接异常", true)
// pair = Pair("域控连接异常", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_connect_error), true)
}
AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS -> {
pair = Pair("非法域控地址", true)
// pair = Pair("非法域控地址", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_illegal_address), true)
}
AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS -> {
pair = Pair("正在搜索域控地址", true)
// pair = Pair("正在搜索域控地址", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_search_address), true)
}
AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS -> {
pair = Pair("找不到可用的域控地址", true)
// pair = Pair("找不到可用的域控地址", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_not_found_address), true)
}
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT -> {
pair = Pair("域控心跳超时", true)
// pair = Pair("域控心跳超时", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_heartbeat_timeout), true)
}
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED -> {
pair = Pair("域控主动断开连接", true)
// pair = Pair("域控主动断开连接", true)
pair = Pair(StringUtils.getString(R.string.module_core_ipc_server_disconnected), true)
}
else -> {}
@@ -211,11 +230,13 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
override fun authCrtFile(device: String, root: String) {
super.authCrtFile(device, root)
UiThreadHandler.post({
if (CallerAutopilotCarConfigListenerManager.getCertFileResult() != "未开启认证") {
// if (CallerAutopilotCarConfigListenerManager.getCertFileResult() != "未开启认证") {
if (CallerAutopilotCarConfigListenerManager.getCertFileResult() != StringUtils.getString(R.string.module_core_authentication_not_enabled)) {
return@post
}
if (data.size < 6) return@post
data[5].desc = "本机证书已下载"
// data[5].desc = "本机证书已下载"
data[5].desc = StringUtils.getString(R.string.module_core_local_cert_downloaded)
data[5].isException = false
adapter?.notifyItemChanged(5)
}, UiThreadHandler.MODE.QUEUE)
@@ -225,7 +246,8 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
super.authCrtError(errorMsg)
UiThreadHandler.post({
if (data.size < 6) return@post
data[5].desc = "本机证书下载异常:$errorMsg"
// data[5].desc = "本机证书下载异常:$errorMsg"
data[5].desc = "${StringUtils.getString(R.string.module_core_local_cert_download_failed)}$errorMsg"
data[5].isException = true
adapter?.notifyItemChanged(5)
}, UiThreadHandler.MODE.QUEUE)
@@ -240,7 +262,8 @@ class StatusSummaryView @JvmOverloads constructor(context: Context, attrs: Attri
UiThreadHandler.post({
if (data.size < 6) return@post
data[5].desc = msg
data[5].isException = !msg.contains("成功校验")
// data[5].isException = !msg.contains("成功校验")
data[5].isException = !msg.contains(StringUtils.getString(R.string.module_core_check_success))
adapter?.notifyItemChanged(5)
}, UiThreadHandler.MODE.QUEUE)
}

View File

@@ -28,6 +28,7 @@ import com.mogo.eagle.core.function.msgbox.MsgBoxConfig
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.service_biz.BizConfig
@@ -180,7 +181,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
// tvAcceleration.text = "加速度 $maxAcceleration m/s²"
// }
clSpeedSet.visibility = View.VISIBLE
tvAcceleration.text = "每次调整车速±5km/h,点击确定生效"
// tvAcceleration.text = "每次调整车速±5km/h,点击确定生效"
tvAcceleration.text = StringUtils.getString(R.string.module_core_speed_adjust_step_5km)
if (speedLimit > 0) {
etInputSpeed.setText(speedLimit.toString())
}else{

View File

@@ -5,6 +5,7 @@ import androidx.lifecycle.LifecycleObserver
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.StringUtils
import kotlinx.android.synthetic.main.dialog_ota_power_off_finish.tvPowerOffClose
/**
@@ -28,7 +29,8 @@ class OTAPowerOffFinishDialog(context: Context) :
fun speakTTS(){
//语音提示下电重启
AIAssist.getInstance(context).speakTTSVoice("优雅停服完成,请操作车辆下电重启")
// AIAssist.getInstance(context).speakTTSVoice("优雅停服完成,请操作车辆下电重启")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_notice_shut_down_power_off))
}
}

View File

@@ -11,6 +11,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.ResourceUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinSecondFormat
import kotlinx.android.synthetic.main.dialog_ota_upgrade_result.ivUpgradeResult
@@ -53,10 +54,14 @@ class OTAUpgradeResultDialog(context: Context) :
MsgBoxBean(
MsgBoxType.OTA,
OTAMsg(
"成功", "车辆部署任务执行结果", "任务下载完成,一分钟后操作车辆下电重启")
// "成功", "车辆部署任务执行结果", "任务下载完成,一分钟后操作车辆下电重启")
StringUtils.getString(R.string.module_core_succeed),
StringUtils.getString(R.string.module_core_vehicle_deployment_task_result),
StringUtils.getString(R.string.module_core_task_download_complete_power_restart))
)
)
AIAssist.getInstance(context).speakTTSVoice("任务下载完成,一分钟后操作车辆下电重启")
// AIAssist.getInstance(context).speakTTSVoice("任务下载完成,一分钟后操作车辆下电重启")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_task_download_complete_power_restart))
}else{
//升级失败
ivUpgradeResult.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_ota_upgrade_fail))
@@ -71,10 +76,14 @@ class OTAUpgradeResultDialog(context: Context) :
MsgBoxBean(
MsgBoxType.OTA,
OTAMsg(
"失败", "车辆部署任务执行结果", "车辆部署任务执行失败,建议上报问题")
// "失败", "车辆部署任务执行结果", "车辆部署任务执行失败,建议上报问题")
StringUtils.getString(R.string.module_core_fail),
StringUtils.getString(R.string.module_core_vehicle_deployment_task_result),
StringUtils.getString(R.string.module_core_vehicle_deployment_task_failed_report))
)
)
AIAssist.getInstance(context).speakTTSVoice("车辆部署任务执行失败")
// AIAssist.getInstance(context).speakTTSVoice("车辆部署任务执行失败")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_vehicle_deployment_task_failed))
}
}

View File

@@ -9,6 +9,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.ota.OtaUpgradeInfo
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.StringUtils
/**
* OTA升级下载状态适配器
@@ -34,7 +35,8 @@ class OTADownloadStatusAdapter(private val context: Context): RecyclerView.Adapt
holder.tvProductName.text = otaUpgradeInfo.product_name
holder.tvDownloadProgress.text = "${(otaUpgradeInfo.cur_size*100/otaUpgradeInfo.total_size).toInt()}%"
if(otaUpgradeInfo.cur_size == otaUpgradeInfo.total_size){
holder.tvDownloadProgress.text = "部署中"
// holder.tvDownloadProgress.text = "部署中"
holder.tvDownloadProgress.text = StringUtils.getString(R.string.module_core_installing)
}
holder.pbDownloadProgress.progress = (otaUpgradeInfo.cur_size*100/otaUpgradeInfo.total_size).toInt()
if(otaUpgradeInfo.left_time <= 0){
@@ -42,9 +44,11 @@ class OTADownloadStatusAdapter(private val context: Context): RecyclerView.Adapt
}else{
holder.tvDownloadTime.visibility = View.VISIBLE
val upgradeTime = if(otaUpgradeInfo.left_time > 60){
"剩余${otaUpgradeInfo.left_time/60}分钟${otaUpgradeInfo.left_time%60}"
// "剩余${otaUpgradeInfo.left_time/60}分钟${otaUpgradeInfo.left_time%60}秒"
StringUtils.getString(R.string.module_core_installing_time_used, otaUpgradeInfo.left_time / 60, otaUpgradeInfo.left_time % 60)
}else{
"剩余${otaUpgradeInfo.left_time%60}"
// "剩余${otaUpgradeInfo.left_time%60}秒"
StringUtils.getString(R.string.module_core_installing_time_used1, otaUpgradeInfo.left_time%60)
}
holder.tvDownloadTime.text = upgradeTime
}

View File

@@ -29,6 +29,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.glide.GlideImageLoader
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import kotlinx.android.synthetic.main.hmi_view_road_v2n_event_window.view.containerEventContent
import kotlinx.android.synthetic.main.hmi_view_road_v2n_event_window.view.containerIconHint
@@ -481,7 +482,8 @@ class RoadV2NEventWindowView @JvmOverloads constructor(
)
tvV2XHintContent.text = dataBean.hintStr
tvV2XTimeStr.text =
"更新时间:${DateTimeUtils.getTimeText(dataBean.timestamp, DateTimeUtils.HH_mm_ss)}"
// "更新时间:${DateTimeUtils.getTimeText(dataBean.timestamp, DateTimeUtils.HH_mm_ss)}"
"${StringUtils.getString(R.string.module_core_update_time)}${DateTimeUtils.getTimeText(dataBean.timestamp, DateTimeUtils.HH_mm_ss)}"
if (dataBean.isNeedTTS && !TextUtils.isEmpty(dataBean.ttsStr)) {
AIAssist.getInstance(context)
.speakTTSVoiceWithLevel(dataBean.ttsStr, AIAssist.NEW_LEVEL_2)

View File

@@ -26,6 +26,7 @@ import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhjt.service_biz.BizConfig
@@ -116,7 +117,8 @@ class PncActionsView @JvmOverloads constructor(
&& mTrafficLightResult != null
&& hasRedLight()
) {
actions += ",预计${getWaitTrafficLightTime()}秒后通过"
// actions += ",预计${getWaitTrafficLightTime()}秒后通过"
actions += StringUtils.getString(R.string.module_core_estimated_pass_time, getWaitTrafficLightTime())
} else {
mTrafficLightResult = null
}
@@ -135,7 +137,8 @@ class PncActionsView @JvmOverloads constructor(
}
if (isPlanningFromServer && AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
AIAssist.getInstance(Utils.getApp())
.speakTTSVoiceWithLevel("正在使用云端规划通过路口", AIAssist.NEW_LEVEL_2)
// .speakTTSVoiceWithLevel("正在使用云端规划通过路口", AIAssist.NEW_LEVEL_2)
.speakTTSVoiceWithLevel(StringUtils.getString(R.string.module_core_using_cloud_planning_pass_intersection), AIAssist.NEW_LEVEL_2)
}
// update view
if (actions.isNullOrEmpty()) {
@@ -147,7 +150,8 @@ class PncActionsView @JvmOverloads constructor(
tvHmiPncActions.text = actions
}
//voice tip
if(actions == "已超出ODD"){
// if(actions == "已超出ODD"){
if(actions == StringUtils.getString(R.string.module_core_has_exceeded_odd)){
val countDownTimer = object : CountDownTimer(3000, 1000){
override fun onTick(p0: Long) {
try {

View File

@@ -31,6 +31,7 @@ import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiActio
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.common.MessageType
@@ -426,7 +427,8 @@ class CheckSystemView @JvmOverloads constructor(
if ( receivedAck.status == ReceivedAck.Status.NORMAL) {
//一键停服命令回执成功则正常进入停服阶段中1分钟倒计时并且TTS和消息盒子提示
CallerDevaToolsManager.setPowerOffStatus(2)
AIAssist.getInstance(context).speakTTSVoice("请等待1分钟再执行车辆下电")
// AIAssist.getInstance(context).speakTTSVoice("请等待1分钟再执行车辆下电")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_one_minute_later_power_off))
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(

View File

@@ -25,6 +25,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerColdStartStateListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.ResourceUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo.adas.data.AdasConstants
@@ -185,7 +186,8 @@ class ColdStartView @JvmOverloads constructor(
when(status){
//主动断开连接
AdasConstants.IpcConnectionStatus.DISCONNECTED ->{
showIPCConnectFailView("域控未连接或主动断开连接,建议重启车辆并上报问题")
// showIPCConnectFailView("域控未连接或主动断开连接,建议重启车辆并上报问题")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_disconnected))
}
//连接中
AdasConstants.IpcConnectionStatus.CONNECTING ->{
@@ -201,13 +203,15 @@ class ColdStartView @JvmOverloads constructor(
}
//连接异常(鹰眼与域控连接失败、无法连接、非正常断开等)
AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION ->{
showIPCConnectFailView("本设备与域控未连接建议检查WIFI状态、域控开关")
// showIPCConnectFailView("本设备与域控未连接建议检查WIFI状态、域控开关")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_connect_exception))
// showIPCConnectFailView("域控连接异常建议检查WiFi连接情况及域控是否开机")
}
//非法地址(连接模式为指定地址时:表示当前鹰眼调用连接时传入的域控地址错误或不符合规则【不修改默认配置不会出现此问题】;
// 连接模式为PING模式时表示传入的PING地址列表存在问题
AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS ->{
showIPCConnectFailView("非法域控地址,建议重启车辆并上报问题")
// showIPCConnectFailView("非法域控地址,建议重启车辆并上报问题")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_illegal_address))
}
//正在搜索域控地址
AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS ->{
@@ -217,23 +221,28 @@ class ColdStartView @JvmOverloads constructor(
// 【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、
// 工控机是否开机等】)
AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS ->{
showIPCConnectFailView("找不到域控可用地址,建议检查车载路由器及域控是否开机")
// showIPCConnectFailView("找不到域控可用地址,建议检查车载路由器及域控是否开机")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_not_found_address))
}
//域控证书认证异常
AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED ->{
showIPCConnectFailView("域控证书认证异常")
// showIPCConnectFailView("域控证书认证异常")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_certification_failed))
}
//心跳超时(连接域控成功后在一段时间内未收到域控任何数据),超时时间:
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT ->{
showIPCConnectFailView("心跳超时(连接域控成功后在一段时间内未收到域控任何数据)")
// showIPCConnectFailView("心跳超时(连接域控成功后在一段时间内未收到域控任何数据)")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_heartbeat_timeout))
}
//協議不匹配被连接的域控端非WebSocket协议【可能性非常低】
AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH ->{
showIPCConnectFailView("协议不匹配")
// showIPCConnectFailView("协议不匹配")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_protocol_mismatch))
}
//域控主动断开连接域控主动发起断开WebSocket连接
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED ->{
showIPCConnectFailView("域控主动断开连接,建议重启车辆并上报问题")
// showIPCConnectFailView("域控主动断开连接,建议重启车辆并上报问题")
showIPCConnectFailView(StringUtils.getString(R.string.module_core_cold_ipc_server_disconnected))
}
else -> {}
@@ -259,7 +268,8 @@ class ColdStartView @JvmOverloads constructor(
coldStartStatus = true
showColdStartSuccessView()
//冷启动成功埋点统计
reason = "冷启动成功"
// reason = "冷启动成功"
reason = StringUtils.getString(R.string.module_core_cold_started_success)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartSuccess,reason)
//记录冷启动成功时间
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
@@ -294,7 +304,8 @@ class ColdStartView @JvmOverloads constructor(
coldStartStatus = true
showColdStartSuccessView()
//冷启动成功埋点统计
reason = "冷启动成功"
// reason = "冷启动成功"
reason = StringUtils.getString(R.string.module_core_cold_started_success)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartSuccess,reason)
//记录冷启动成功时间
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
@@ -333,7 +344,8 @@ class ColdStartView @JvmOverloads constructor(
showColdStartSuccessView()
}
//冷启动成功埋点统计
reason = "冷启动成功"
// reason = "冷启动成功"
reason = StringUtils.getString(R.string.module_core_cold_started_success)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartSuccess,reason)
//记录冷启动成功时间
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
@@ -342,7 +354,8 @@ class ColdStartView @JvmOverloads constructor(
//展示冷启动失败视图
showColdStartFailView()
//冷启动失败埋点统计
reason = "SSM返回冷启动失败"
// reason = "SSM返回冷启动失败"
reason = StringUtils.getString(R.string.module_core_cold_start_failed_ssm)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartFail,reason)
}
nodeList.clear()
@@ -412,13 +425,15 @@ class ColdStartView @JvmOverloads constructor(
// 网络连接可用
connectWifiSuccess()
//网络连接可用埋点统计
reason = "网络连接可用"
// reason = "网络连接可用"
reason = StringUtils.getString(R.string.module_core_cold_network_usable)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.wifiConnectSuccess,reason)
} else {
// 网络连接不可用
showWifiConnecting()
//网络连接不可用埋点统计
reason = "网络连接不可用"
// reason = "网络连接不可用"
reason = StringUtils.getString(R.string.module_core_cold_network_unusable)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.wifiConnectFail,reason)
}
}
@@ -436,23 +451,28 @@ class ColdStartView @JvmOverloads constructor(
return when(state){
// 未开始
SsmInfo.CSState.COLD_START_DEFAULT->{
"启动中…"
// "启动中…"
StringUtils.getString(R.string.module_core_starting)
}
// 启动中
SsmInfo.CSState.COLD_START_STARTING->{
"启动中…"
// "启动中…"
StringUtils.getString(R.string.module_core_starting)
}
// 就绪
SsmInfo.CSState.COLD_START_READY->{
"系统启动成功,即将进入主页"
// "系统启动成功,即将进入主页"
StringUtils.getString(R.string.module_core_cold_ipc_started)
}
// 有异常未就绪
SsmInfo.CSState.COLD_START_UNREADY->{
"系统启动异常,建议重启车辆并上报问题"
// "系统启动异常,建议重启车辆并上报问题"
StringUtils.getString(R.string.module_core_cold_ipc_start_error)
}
// 超时
SsmInfo.CSState.COLD_START_TIMEOUT->{
"系统启动超时,建议重启车辆并上报问题"
// "系统启动超时,建议重启车辆并上报问题"
StringUtils.getString(R.string.module_core_cold_ipc_start_timeout)
}
}
}
@@ -464,19 +484,23 @@ class ColdStartView @JvmOverloads constructor(
return when(nodeStatus){
// 启动中
SsmInfo.NodeStatus.NODE_STARTING->{
"启动中…"
// "启动中…"
StringUtils.getString(R.string.module_core_starting)
}
// 启动成功
SsmInfo.NodeStatus.NODE_FINISH->{
"启动成功"
// "启动成功"
StringUtils.getString(R.string.module_core_cold_started_success1)
}
// 启动失败
SsmInfo.NodeStatus.NODE_FAILED->{
"启动失败"
// "启动失败"
StringUtils.getString(R.string.module_core_cold_start_failed)
}
// 启动超时
SsmInfo.NodeStatus.NODE_TIMEOUT->{
"启动超时"
// "启动超时"
StringUtils.getString(R.string.module_core_cold_start_timeout1)
}
}
@@ -525,7 +549,8 @@ class ColdStartView @JvmOverloads constructor(
rvFaultList.visibility = View.GONE
//域控连接成功埋点统计
reason = "域控连接成功"
// reason = "域控连接成功"
reason = StringUtils.getString(R.string.module_core_cold_ipc_connected)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectSuccess,reason)
ssmConnectStatus = false
coldStartStatus = false
@@ -571,7 +596,8 @@ class ColdStartView @JvmOverloads constructor(
ivFaultIcon.visibility = View.GONE
rvFaultList.visibility = View.GONE
//域控连接失败埋点统计
this.reason = "域控连接失败:$failReason"
// this.reason = "域控连接失败:$failReason"
this.reason = "${StringUtils.getString(R.string.module_core_cold_ipc_connected_fail)}$failReason"
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectFail,reason)
ssmConnectStatus = false
coldStartStatus = false
@@ -685,7 +711,8 @@ class ColdStartView @JvmOverloads constructor(
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_tel_wait)
tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white))
ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process))
tvIpcConnectContent.text = "正在重连域控..."
// tvIpcConnectContent.text = "正在重连域控..."
tvIpcConnectContent.text = StringUtils.getString(R.string.module_core_cold_ipc_connecting)
if(ipcRotationAnim == null){
ipcRotationAnim = ObjectAnimator.ofFloat(ivIpcConnectStatus, "rotation", 0f, 360f)
}
@@ -728,7 +755,8 @@ class ColdStartView @JvmOverloads constructor(
//开始启动冷启动等待倒计时
coldStartProcess()
//SSM连接成功埋点统计
reason = "SSM连接成功"
// reason = "SSM连接成功"
reason = StringUtils.getString(R.string.module_core_cold_ssm_connected)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ssmConnectSuccess,reason)
}
ssmConnectStatus = true
@@ -751,7 +779,8 @@ class ColdStartView @JvmOverloads constructor(
tvSsmConnectContent.setTextColor(ContextCompat.getColor(context, R.color.white))
//展示冷启动连接过程视图
rvNodeList.visibility = View.VISIBLE
tvColdStartContent.text = "启动中…"
// tvColdStartContent.text = "启动中…"
tvColdStartContent.text = StringUtils.getString(R.string.module_core_starting)
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process))
//开启冷启动连接状态动画
@@ -800,7 +829,8 @@ class ColdStartView @JvmOverloads constructor(
//展示连接SSM失败视图
showSSMConnectFailView()
//SSM连接失败埋点统计
reason = "等待SSM超时"
// reason = "等待SSM超时"
reason = StringUtils.getString(R.string.module_core_cold_ssm_timeout)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ssmConnectFail,reason)
}
}
@@ -828,7 +858,8 @@ class ColdStartView @JvmOverloads constructor(
//展示冷启动失败视图
showColdStartFailView()
//冷启动失败埋点统计
reason = "等待冷启动超时"
// reason = "等待冷启动超时"
reason = StringUtils.getString(R.string.module_core_cold_ssm_await_timeout)
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartFail,reason)
}
}

View File

@@ -14,6 +14,7 @@ import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.zhjt.mogo.adas.data.AdasConstants
import kotlinx.android.synthetic.main.view_connection_process.view.clConnectionTip
@@ -222,7 +223,8 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_progress_style)
pbConnectionProgress.progress = 25
tvConnectionStatus.setPadding(0,0,0,10)
tvConnectionStatus.text = "系统启动中..."
// tvConnectionStatus.text = "系统启动中..."
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_starting)
clConnectionTip.visibility = View.GONE
}
}
@@ -239,7 +241,8 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_progress_style)
pbConnectionProgress.progress = 50
tvConnectionStatus.setPadding(0,0,0,10)
tvConnectionStatus.text = "系统启动中..."
// tvConnectionStatus.text = "系统启动中..."
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_starting)
clConnectionTip.visibility = View.GONE
}
}
@@ -256,7 +259,8 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_success_style)
pbConnectionProgress.progress = 100
tvConnectionStatus.setPadding(0,0,0,0)
tvConnectionStatus.text = "系统启动成功"
// tvConnectionStatus.text = "系统启动成功"
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_started)
clConnectionTip.visibility = View.GONE
}
}
@@ -273,10 +277,13 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_fail_style)
pbConnectionProgress.progress = 25
tvConnectionStatus.setPadding(0,0,0,0)
tvConnectionStatus.text = "系统启动异常"
// tvConnectionStatus.text = "系统启动异常"
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_start_error)
clConnectionTip.visibility = View.VISIBLE
tvConnectionTipTitle.text = "Telematics连接异常"
tvConnectionTipContent.text = "建议重启车辆并上报问题"
// tvConnectionTipTitle.text = "Telematics连接异常"
tvConnectionTipTitle.text = StringUtils.getString(R.string.module_core_ipc_tel_node_connect_error)
// tvConnectionTipContent.text = "建议重启车辆并上报问题"
tvConnectionTipContent.text = StringUtils.getString(R.string.module_core_reboot_car)
}
}
}
@@ -292,10 +299,13 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_fail_style)
pbConnectionProgress.progress = 50
tvConnectionStatus.setPadding(0,0,0,0)
tvConnectionStatus.text = "系统启动异常"
// tvConnectionStatus.text = "系统启动异常"
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_start_error)
clConnectionTip.visibility = View.VISIBLE
tvConnectionTipTitle.text = "SSM连接异常"
tvConnectionTipContent.text = "建议重启车辆并上报问题"
// tvConnectionTipTitle.text = "SSM连接异常"
tvConnectionTipTitle.text = StringUtils.getString(R.string.module_core_cold_ssm_connect_error)
// tvConnectionTipContent.text = "建议重启车辆并上报问题"
tvConnectionTipContent.text = StringUtils.getString(R.string.module_core_reboot_car)
}
}
}
@@ -311,10 +321,13 @@ class ConnectionProcessView @JvmOverloads constructor(
pbConnectionProgress.progressDrawable = ContextCompat.getDrawable(context, R.drawable.connection_fail_style)
pbConnectionProgress.progress = 100
tvConnectionStatus.setPadding(0,0,0,0)
tvConnectionStatus.text = "系统启动异常"
// tvConnectionStatus.text = "系统启动异常"
tvConnectionStatus.text = StringUtils.getString(R.string.module_core_ipc_start_error)
clConnectionTip.visibility = View.VISIBLE
tvConnectionTipTitle.text = "系统冷启动异常"
tvConnectionTipContent.text = "建议重启车辆并上报问题"
// tvConnectionTipTitle.text = "系统冷启动异常"
tvConnectionTipTitle.text = StringUtils.getString(R.string.module_core_cold_start_error)
// tvConnectionTipContent.text = "建议重启车辆并上报问题"
tvConnectionTipContent.text = StringUtils.getString(R.string.module_core_reboot_car)
}
}
}

View File

@@ -20,6 +20,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.scope
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import kotlinx.coroutines.Runnable
import kotlinx.coroutines.launch
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -154,11 +155,15 @@ class GreenWaveView: LinearLayout, IMoGoChassisLocationGCJ02Listener, RecyclerVi
rv?.adapter = WaveAdapter()
startAutoScroll()
if (isDriver) {
driver_recommend_speed?.text = "建议车速${minSpeed}-${maxSpeed}km/h"
driver_recommend_cross?.text = "可丝滑通过${cross}个路口"
// driver_recommend_speed?.text = "建议车速${minSpeed}-${maxSpeed}km/h"
driver_recommend_speed?.text = StringUtils.getString(R.string.module_core_suggested_speed_test_range, minSpeed, maxSpeed)
// driver_recommend_cross?.text = "可丝滑通过${cross}个路口"
driver_recommend_cross?.text = StringUtils.getString(R.string.module_core_pass_intersection_count, cross)
} else {
passenger_recommend_speed?.text = "建议车速${minSpeed}-${maxSpeed}km/h"
passenger_recommend_cross?.text = "可丝滑通过${cross}个路口"
// passenger_recommend_speed?.text = "建议车速${minSpeed}-${maxSpeed}km/h"
passenger_recommend_speed?.text = StringUtils.getString(R.string.module_core_suggested_speed_test_range, minSpeed, maxSpeed)
// passenger_recommend_cross?.text = "可丝滑通过${cross}个路口"
passenger_recommend_cross?.text = StringUtils.getString(R.string.module_core_pass_intersection_count, cross)
}
}
}

View File

@@ -10,6 +10,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerServicesEventManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.view.TravelRealityView
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.Random
@@ -124,9 +125,18 @@ open class ItinerarySummaryDialog(context: Context, isDriver: Boolean, theme: In
val formattedMileage: String = String.format("%.1f", mileage/1000)
val formattedSmartRoadLen: String = String.format("%.1f", smartRoadLen/1000)
if(isDriver){
tvSummaryZhiContent?.text = "全程 ${formattedMileage}km智慧道路护航 ${(formattedSmartRoadLen)}km全息感知覆盖率 ${(smartRoadLen*100/mileage).toInt()}%,车辆服务次数${vehicleServiceNum}"
// tvSummaryZhiContent?.text = "全程 ${formattedMileage}km智慧道路护航 ${(formattedSmartRoadLen)}km全息感知覆盖率 ${(smartRoadLen*100/mileage).toInt()}%,车辆服务次数${vehicleServiceNum}次"
tvSummaryZhiContent?.text = StringUtils.getString(
R.string.module_core_trip_core_data_summary,
formattedMileage,
formattedSmartRoadLen,
(smartRoadLen * 100 / mileage).toInt(),
vehicleServiceNum
)
}else{
tvSummaryZhiContent?.text = "旅途全长 $formattedMileage km全感知覆盖率 ${(smartRoadLen*100/mileage).toInt()}%,车辆服务次数${vehicleServiceNum}"
// tvSummaryZhiContent?.text = "旅途全长 $formattedMileage km全感知覆盖率 ${(smartRoadLen*100/mileage).toInt()}%,车辆服务次数${vehicleServiceNum}次"
tvSummaryZhiContent?.text =
StringUtils.getString(R.string.module_core_trip_key_data, formattedMileage, (smartRoadLen * 100 / mileage).toInt(), vehicleServiceNum)
}
}
}

View File

@@ -29,6 +29,7 @@ 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.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest.ParallelRequest
@@ -207,7 +208,8 @@ class ParallelDriveView @JvmOverloads constructor(
"TASK_REJECTED" -> {// 任务已被拒绝
state = FAILURE
updateUI(FAILURE)
AIAssist.getInstance(context).speakTTSVoice("请求已被拒绝")
// AIAssist.getInstance(context).speakTTSVoice("请求已被拒绝")
AIAssist.getInstance(context).speakTTSVoice(StringUtils.getString(R.string.module_core_request_rejected))
}
"PARALLEL_EXCEPTION_MANUAL_DRIVING" -> {// 异常请人工驾驶
@@ -388,7 +390,8 @@ class ParallelDriveView @JvmOverloads constructor(
.setType(2)// 2:鹰眼请求
.setTakeover(1)// 1:请求平行驾驶接管
.setCode("PAD_ACTIVE")
parallelRequest.reason = "鹰眼请求"
// parallelRequest.reason = "鹰眼请求"
parallelRequest.reason = StringUtils.getString(R.string.module_core_eagle_eye_request)
CallerAutoPilotControlManager.sendParallelDrivingReq(
System.currentTimeMillis().toString(), parallelRequest.build()
)
@@ -401,7 +404,8 @@ class ParallelDriveView @JvmOverloads constructor(
.setType(2)// 2:鹰眼请求
.setTakeover(2)// 2:取消平行驾驶接管
.setCode("PAD_ACTIVE")
parallelRequest.reason = "鹰眼请求"
// parallelRequest.reason = "鹰眼请求"
parallelRequest.reason = StringUtils.getString(R.string.module_core_eagle_eye_request)
CallerAutoPilotControlManager.sendParallelDrivingReq(
System.currentTimeMillis().toString(), parallelRequest.build()
)

View File

@@ -13,6 +13,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener
import com.mogo.eagle.core.function.call.map.CallerMapRomaListener
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import kotlinx.android.synthetic.main.view_roma_distance.view.*
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -39,9 +40,11 @@ class RomaDistanceView @JvmOverloads constructor(
}
if (disChangeColor) {
romaDistanceMeter.text =
Html.fromHtml("<font color='#293449'>漫游距离</font><font color='#0752C3'>${dis}米</font>")
// Html.fromHtml("<font color='#293449'>漫游距离</font><font color='#0752C3'>${dis}米</font>")
Html.fromHtml("<font color='#293449'>${StringUtils.getString(R.string.module_core_roaming_distance)}</font><font color='#0752C3'>${dis}${StringUtils.getString(R.string.module_och_m)}</font>")
} else {
romaDistanceMeter.text = "漫游距离${dis}"
// romaDistanceMeter.text = "漫游距离${dis}米"
romaDistanceMeter.text = "${StringUtils.getString(R.string.module_core_roaming_distance)}${dis}${StringUtils.getString(R.string.module_och_m)}"
}
}
}

View File

@@ -110,12 +110,21 @@ class SystemVersionView @JvmOverloads constructor(
// ToastUtils.showShort("下载已完成")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_download_complete)
} else {
// ToastUtils.showShort(
// "预计" + AdUpgradeStateHelper.getRemainingTime(
// progressDetail.total,
// previousProgress,
// currentProgress
// ) + "下载完成"
// )
ToastUtils.showShort(
"预计" + AdUpgradeStateHelper.getRemainingTime(
progressDetail.total,
previousProgress,
currentProgress
) + "下载完成"
StringUtils.getString(
R.string.module_core_estimated_download_complete, AdUpgradeStateHelper.getRemainingTime(
progressDetail.total,
previousProgress,
currentProgress
)
)
)
}
}

View File

@@ -8,7 +8,9 @@ import android.os.Looper
import android.os.Message
import android.widget.ImageView
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadPoolManagerUtils
import java.lang.ref.SoftReference
import java.util.concurrent.ArrayBlockingQueue
@@ -115,7 +117,8 @@ class FrameAnimatorContainerUtils (resId: Int,
heightImage = bmp.height
config = bmp.config
}catch (e:Exception){
throw RuntimeException("请设置图片或传递大小")
// throw RuntimeException("请设置图片或传递大小")
throw RuntimeException(StringUtils.getString(R.string.module_core_set_image))
}
}
// 当图片大小类型相同时进行复用避免频繁GC

View File

@@ -46,6 +46,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.permissions.PermissionsDialogUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ProcessUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.service.chain.ChainLog
@@ -90,7 +91,8 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
return
}
//申请悬浮窗权限
PermissionsDialogUtils.openAppDetails(this, "显示悬浮窗", REQUEST_CODE_DIALOG)
// PermissionsDialogUtils.openAppDetails(this, "显示悬浮窗", REQUEST_CODE_DIALOG)
PermissionsDialogUtils.openAppDetails(this, StringUtils.getString(R.string.module_core_show_pop_window), REQUEST_CODE_DIALOG)
}
// todo 优化 车聊聊
@@ -369,23 +371,28 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
isAllGranted = false
when (permissions[index]) {
Manifest.permission.RECORD_AUDIO -> {
reasong.append("录音机、")
// reasong.append("录音机、")
reasong.append(StringUtils.getString(R.string.module_core_record_audio)).append(StringUtils.getString(R.string.module_core_comma))
}
// Manifest.permission.BLUETOOTH -> {
// reasong.append("蓝牙、")
// }
Manifest.permission.READ_EXTERNAL_STORAGE -> {
reasong.append("读取外部文件、")
// reasong.append("读取外部文件、")
reasong.append(StringUtils.getString(R.string.module_core_read_external_storage)).append(StringUtils.getString(R.string.module_core_comma))
}
Manifest.permission.WRITE_EXTERNAL_STORAGE -> {
reasong.append("写入外部文件、")
// reasong.append("写入外部文件、")
reasong.append(StringUtils.getString(R.string.module_core_write_external_storage)).append(StringUtils.getString(R.string.module_core_comma))
}
Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION -> {
isLocationGranted = false
if(!reasong.contains("定位")){
reasong.append("定位、")
// if(!reasong.contains("定位")){
if(!reasong.contains(StringUtils.getString(R.string.module_core_location))){
// reasong.append("定位、")
reasong.append(StringUtils.getString(R.string.module_core_location)).append(StringUtils.getString(R.string.module_core_comma))
}
}
else -> {}

View File

@@ -7,12 +7,13 @@
android:layout_height="match_parent"
android:background="@drawable/bg_v2n_event_live_play_passenger">
<!-- android:text="当前设备暂无信号"-->
<TextView
android:id="@+id/tvTipContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="当前设备暂无信号"
android:text="@string/module_core_current_device_no_signal"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_32"
android:visibility="gone"

View File

@@ -15,13 +15,14 @@
android:layout_height="150dp"
android:src="@drawable/icon_ad" />
<!-- android:text="应用名称"-->
<TextView
android:id="@+id/list_item_app_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:singleLine="true"
android:text="应用名称"
android:text="@string/module_core_app_name"
android:textColor="@color/color_FFFFFF"
android:textSize="30dp" />

View File

@@ -25,13 +25,14 @@
android:layout_marginStart="25dp"
/>
<!-- android:text="录包提醒"-->
<TextView
android:id="@+id/tvRecordTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/ivBadCaseImage"
app:layout_constraintLeft_toRightOf="@id/ivBadCaseImage"
android:text="录包提醒"
android:text="@string/module_core_bag_record_reminder"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
android:layout_marginStart="25dp"
@@ -59,6 +60,7 @@
android:layout_marginEnd="25dp"
/>
<!-- android:text="查看"-->
<TextView
android:id="@+id/tvRecordCheck"
android:layout_width="wrap_content"
@@ -68,7 +70,7 @@
app:layout_constraintBottom_toBottomOf="@id/tvBagRecordTime"
android:paddingEnd="25dp"
android:paddingStart="20dp"
android:text="查看"
android:text="@string/module_core_look_over"
android:textColor="#FFFFFFFF"
android:textSize="30dp"
/>

View File

@@ -20,11 +20,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvMNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FF203555"
android:textSize="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_10"

View File

@@ -20,11 +20,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvMNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FF203555"
android:textSize="@dimen/dp_25"
android:textStyle="bold"
@@ -49,11 +50,12 @@
android:ellipsize="end"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvMNoticeCheck"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_110"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF1366FB"
android:textSize="@dimen/dp_20"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -46,11 +46,12 @@
android:gravity="start"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvMSummaryCheck"
android:layout_width="110dp"
android:layout_height="110dp"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF1366FB"
android:textSize="20dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -16,11 +16,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvMNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FF203555"
android:textSize="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_16"
@@ -45,11 +46,12 @@
android:ellipsize="end"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvMNoticeCheck"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_100"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF1366FB"
android:textSize="20dp"
android:paddingEnd="@dimen/dp_10"

View File

@@ -42,11 +42,12 @@
android:gravity="start"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvMSummaryCheck"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF1366FB"
android:textSize="20dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -48,11 +48,12 @@
android:lineSpacingMultiplier="1.2"
/>
<!--展开折叠按钮-->
<!-- android:text="展开"-->
<TextView
android:id="@+id/tvFmStatusSelect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="展开"
android:text="@string/module_core_unfold"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/sp_24"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -66,11 +66,12 @@
android:lineSpacingMultiplier="1.2"
/>
<!-- android:text="展开"-->
<TextView
android:id="@+id/tvStatusSelect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="展开"
android:text="@string/module_core_unfold"
android:textColor="#FFFFFFFF"
android:textSize="24dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -24,11 +24,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
app:layout_constraintTop_toTopOf="@id/ivNoticeImage"
@@ -48,6 +49,7 @@
android:textSize="24dp"
/>
<!-- android:text="查看"-->
<TextView
android:id="@+id/tvNoticeCheck"
android:layout_width="wrap_content"
@@ -56,7 +58,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="25dp"
android:layout_marginBottom="20dp"
android:text="查看"
android:text="@string/module_core_look_over"
android:textColor="#FFFFFFFF"
android:textSize="30dp"
/>

View File

@@ -25,6 +25,7 @@
android:src="@drawable/icon_msg_box_operation"
/>
<!-- android:text="运营平台"-->
<TextView
android:id="@+id/tvOperationTitleNormal"
android:layout_width="wrap_content"
@@ -32,7 +33,7 @@
app:layout_constraintTop_toTopOf="@id/tvOperationStatusSelect"
app:layout_constraintBottom_toBottomOf="@id/tvOperationStatusSelect"
app:layout_constraintLeft_toRightOf="@id/ivOperationImageNormal"
android:text="运营平台"
android:text="@string/module_core_operation_platform"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
android:layout_marginStart="23dp"
@@ -54,12 +55,12 @@
android:paddingBottom="15dp"
android:lineSpacingMultiplier="1.2"
/>
<!-- android:text="展开"-->
<TextView
android:id="@+id/tvOperationStatusSelect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="展开"
android:text="@string/module_core_unfold"
android:textColor="#FFFFFFFF"
android:textSize="24dp"
app:layout_constraintTop_toTopOf="parent"
@@ -99,6 +100,7 @@
android:visibility="gone"
/>
<!-- android:text="运营平台"-->
<TextView
android:id="@+id/tvOperationTitleOpen"
android:layout_width="wrap_content"
@@ -106,7 +108,7 @@
app:layout_constraintTop_toTopOf="@id/tvOperationStatusSelect"
app:layout_constraintBottom_toBottomOf="@id/tvOperationStatusSelect"
app:layout_constraintLeft_toRightOf="@id/ivOperationImageOpen"
android:text="运营平台"
android:text="@string/module_core_operation_platform"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
android:layout_marginStart="10dp"

View File

@@ -24,11 +24,12 @@
android:src="@drawable/icon_msg_box_operation_return"
/>
<!-- android:text="还车通知"-->
<TextView
android:id="@+id/tvOperationReturnTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="还车通知"
android:text="@string/module_core_car_return_notice"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
app:layout_constraintTop_toTopOf="@id/ivOperationReturnImage"

View File

@@ -35,6 +35,7 @@
android:textSize="24dp"
/>
<!-- android:text="靠边停车"-->
<TextView
android:id="@+id/tvOperationStopContent"
android:layout_width="0dp"
@@ -48,7 +49,7 @@
android:textSize="32dp"
android:maxLines="1"
android:ellipsize="end"
android:text="靠边停车"
android:text="@string/module_core_pull_over"
/>
</com.mogo.eagle.core.widget.RoundConstraintLayout>

View File

@@ -22,11 +22,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
app:layout_constraintTop_toTopOf="@id/ivNoticeImage"
@@ -46,6 +47,7 @@
android:textSize="24dp"
/>
<!-- android:text="查看"-->
<TextView
android:id="@+id/tvNoticeCheck"
android:layout_width="wrap_content"
@@ -54,7 +56,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="25dp"
android:layout_marginBottom="20dp"
android:text="查看"
android:text="@string/module_core_look_over"
android:textColor="#FFFFFFFF"
android:textSize="30dp"
/>

View File

@@ -22,6 +22,7 @@
android:src="@drawable/icon_msg_box_operation"
/>
<!-- android:text="运营平台"-->
<TextView
android:id="@+id/tvBubbleOperationTitle"
android:layout_width="wrap_content"
@@ -32,7 +33,7 @@
android:layout_marginStart="25dp"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
android:text="运营平台"
android:text="@string/module_core_operation_platform"
/>
<TextView

View File

@@ -23,11 +23,12 @@
android:src="@drawable/icon_msg_box_operation_return"
/>
<!-- android:text="还车通知"-->
<TextView
android:id="@+id/tvOperationReturnTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="还车通知"
android:text="@string/module_core_car_return_notice"
android:textColor="#FFFFFFFF"
android:textSize="32dp"
app:layout_constraintTop_toTopOf="@id/ivOperationReturnImage"

View File

@@ -33,6 +33,7 @@
android:textSize="24dp"
/>
<!-- android:text="靠边停车"-->
<TextView
android:id="@+id/tvOperationStopContent"
android:layout_width="0dp"
@@ -46,7 +47,7 @@
android:textSize="32dp"
android:maxLines="1"
android:ellipsize="end"
android:text="靠边停车"
android:text="@string/module_core_pull_over"
/>
</com.mogo.eagle.core.widget.RoundConstraintLayout>

View File

@@ -10,11 +10,12 @@
android:layout_marginBottom="16dp"
>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvPassengerNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/dp_34"
app:layout_constraintTop_toTopOf="parent"
@@ -35,6 +36,7 @@
android:layout_marginEnd="@dimen/dp_30"
/>
<!-- android:text="5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。"-->
<TextView
android:id="@+id/tvPassengerNoticeContent"
android:layout_width="0dp"
@@ -46,7 +48,7 @@
app:layout_constraintTop_toBottomOf="@id/tvPassengerNoticeTitle"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_margin="@dimen/dp_30"
android:text="5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。"
android:text="@string/module_core_PassengerNoticeContent"
android:maxLines="3"
android:gravity="start"
android:ellipsize="end"

View File

@@ -46,11 +46,12 @@
android:gravity="start"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvPassengerSummaryCheck"
android:layout_width="130dp"
android:layout_height="160dp"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF243959"
android:textSize="28dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -15,11 +15,12 @@
app:isUseSkin="true"
/>
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/tvPassengerNoticeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="#FFFFFFFF"
android:textSize="36dp"
android:layout_marginStart="20dp"
@@ -43,11 +44,12 @@
android:ellipsize="end"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvPassengerNoticeCheck"
android:layout_width="140dp"
android:layout_height="150dp"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF84D4FF"
android:textSize="28dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -41,11 +41,12 @@
android:gravity="start"
/>
<!-- android:text="查 看"-->
<TextView
android:id="@+id/tvPassengerSummaryCheck"
android:layout_width="140dp"
android:layout_height="150dp"
android:text="查 看"
android:text="@string/module_core_look_over1"
android:textColor="#FF84D4FF"
android:textSize="28dp"
app:layout_constraintTop_toTopOf="parent"

View File

@@ -6,11 +6,12 @@
android:background="@drawable/bg_msg_box"
>
<!-- android:text="通知"-->
<TextView
android:id="@+id/tvMsgNotice"
android:layout_width="@dimen/dp_216"
android:layout_height="@dimen/dp_90"
android:text="通知"
android:text="@string/module_core_notice"
android:textColor="@color/color_FF1BB7FF"
android:textSize="@dimen/sp_38"
app:layout_constraintTop_toTopOf="parent"
@@ -28,11 +29,12 @@
app:layout_constraintBottom_toBottomOf="@id/tvMsgNotice"
/>
<!-- android:text="FM信息"-->
<TextView
android:id="@+id/tvMsgFm"
android:layout_width="@dimen/dp_216"
android:layout_height="@dimen/dp_90"
android:text="FM信息"
android:text="@string/module_core_fm_info"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/sp_38"
android:gravity="center"
@@ -52,11 +54,12 @@
android:visibility="gone"
/>
<!-- android:text="系统信息"-->
<TextView
android:id="@+id/tvMsgIpcReport"
android:layout_width="@dimen/dp_216"
android:layout_height="@dimen/dp_90"
android:text="系统信息"
android:text="@string/module_core_system_info"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/sp_38"
android:gravity="center"
@@ -76,11 +79,12 @@
android:visibility="gone"
/>
<!-- android:text="录包"-->
<TextView
android:id="@+id/tvMsgBadCase"
android:layout_width="@dimen/dp_216"
android:layout_height="@dimen/dp_90"
android:text="录包"
android:text="@string/module_core_bag_record"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/sp_38"
android:gravity="center"

View File

@@ -21,12 +21,13 @@
android:background="@drawable/icon_operate_panel_rect_blue"
tools:ignore="ContentDescription" />
<!-- android:text="运营面板"-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:text="运营面板"
android:text="@string/module_core_operation_panel"
android:textColor="#ffffff"
android:textSize="@dimen/dp_42"
tools:ignore="HardcodedText,SpUsage" />

View File

@@ -57,12 +57,14 @@
android:button="@null"
android:background="@drawable/bg_radio_button_operate_panel_unman_interval"
tools:ignore="HardcodedText,SpUsage" />
<!-- android:text="从不"-->
<RadioButton
android:id="@+id/rb_never"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="从不"
android:text="@string/module_core_never"
android:textSize="@dimen/dp_30"
android:textColor="#ffffff"
android:gravity="center"

View File

@@ -18,12 +18,13 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<!-- android:text="官方公告"-->
<TextView
android:id="@+id/module_push_dialog_acc_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_58"
android:text="官方公告"
android:text="@string/module_core_communique"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_56"
android:textStyle="bold"
@@ -121,6 +122,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/module_push_dialog_acc_title" />
<!-- android:text="连接"-->
<TextView
android:id="@+id/notice_connect"
android:layout_width="@dimen/dp_310"
@@ -128,7 +130,7 @@
android:layout_marginBottom="@dimen/dp_110"
android:background="@drawable/notice_connect"
android:gravity="center"
android:text="连接"
android:text="@string/module_core_connect"
android:textColor="#FFF"
android:textSize="@dimen/dp_42"
android:visibility="gone"

View File

@@ -19,12 +19,13 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<!-- android:text="交通事故任务详情"-->
<TextView
android:id="@+id/notice_traffic_dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_54"
android:text="交通事故任务详情"
android:text="@string/module_core_traffic_accident_task_detail"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_56"
android:textStyle="bold"
@@ -65,6 +66,7 @@
app:layout_constraintRight_toRightOf="@id/video_player"
app:layout_constraintTop_toTopOf="@id/video_player" />
<!-- android:text="连接"-->
<TextView
android:id="@+id/notice_connect"
android:layout_width="@dimen/dp_200"
@@ -72,7 +74,7 @@
android:layout_marginBottom="@dimen/dp_40"
android:background="@drawable/notice_connect"
android:gravity="center"
android:text="连接"
android:text="@string/module_core_connect"
android:textColor="#FFF"
android:textSize="@dimen/dp_42"
android:visibility="invisible"
@@ -112,12 +114,13 @@
app:layout_constraintRight_toRightOf="parent" />
<!--接受 拒绝-->
<!-- android:text="接 受"-->
<TextView
android:id="@+id/accept_traffic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="接 受"
android:text="@string/module_core_accept"
android:textColor="@color/color_1F9BFE"
android:textSize="@dimen/dp_50"
android:textStyle="bold"
@@ -126,12 +129,13 @@
app:layout_constraintRight_toRightOf="@+id/traffic_middle_line"
app:layout_constraintTop_toTopOf="@+id/traffic_top_line" />
<!-- android:text="拒 绝"-->
<TextView
android:id="@+id/refuse_traffic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="拒 绝"
android:text="@string/module_core_refuse"
android:textColor="#FFF"
android:textSize="@dimen/dp_50"
android:textStyle="bold"

View File

@@ -77,6 +77,7 @@
app:layout_constraintLeft_toRightOf="@+id/module_push_app_icon_title"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="查看"-->
<TextView
android:id="@+id/notice_push_banner_check"
android:layout_width="@dimen/dp_100"
@@ -84,7 +85,7 @@
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:text="查看"
android:text="@string/module_core_look_over"
android:textColor="@color/color_5A8EFD"
android:textSize="@dimen/dp_42"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -13,12 +13,13 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- android:text="事故来源:"-->
<TextView
android:id="@+id/key_text_view"
android:layout_width="@dimen/dp_180"
android:layout_height="@dimen/dp_50"
android:gravity="left|center"
android:text="事故来源:"
android:text="@string/module_core_accident_source"
android:textColor="#CCFFFFFF"
android:textSize="@dimen/dp_36" />

View File

@@ -21,12 +21,13 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="预警信息"-->
<TextView
android:id="@+id/tvWaringContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="26dp"
android:text="预警信息"
android:text="@string/module_core_warning_info"
android:textColor="#FFFFFF"
android:textSize="42dp"
app:layout_constraintBottom_toBottomOf="@+id/ivWaringIcon"

View File

@@ -107,6 +107,7 @@
android:layout_centerHorizontal="true"
android:background="@drawable/close_nor" />
<!-- android:text="杀死APP"-->
<TextView
android:id="@+id/tvKillContent"
android:layout_width="wrap_content"
@@ -114,7 +115,7 @@
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="23dp"
android:text="杀死APP"
android:text="@string/module_core_kill_app"
android:textColor="@color/color_FFA7B6F0"
android:textSize="32dp" />
</RelativeLayout>
@@ -240,13 +241,14 @@
</RelativeLayout>
<!-- android:text="检测"-->
<TextView
android:id="@+id/tv_check_title"
android:layout_width="wrap_content"
android:layout_height="86dp"
android:layout_marginStart="19dp"
android:gravity="center"
android:text="检测"
android:text="@string/module_core_detection"
android:textColor="@color/color_FFFFFF"
android:textSize="42dp"
app:layout_constraintBottom_toBottomOf="@+id/v_second_group"
@@ -328,6 +330,7 @@
app:layout_constraintLeft_toRightOf="@id/ivSpeedAdd"
app:layout_constraintTop_toTopOf="@id/ivSpeedAdd" />
<!-- android:text="确定"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvSureModify"
android:layout_width="200dp"
@@ -335,7 +338,7 @@
android:layout_marginLeft="50dp"
android:background="@drawable/taxi_loginout_sure_bg"
android:gravity="center"
android:text="确定"
android:text="@string/module_core_confirm"
android:textColor="@android:color/white"
android:textSize="42dp"
app:layout_constraintBottom_toBottomOf="@id/ivSpeedAdd"
@@ -388,6 +391,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/viewSystemVersion" />
<!-- android:text="退出登录"-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actvLoginout"
android:layout_width="790dp"
@@ -395,7 +399,7 @@
android:layout_marginBottom="40dp"
android:background="@drawable/taxi_loginout_bg"
android:gravity="center"
android:text="退出登录"
android:text="@string/module_core_logout"
android:textColor="@android:color/white"
android:textSize="42dp"
android:visibility="gone"

View File

@@ -15,12 +15,13 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="自动驾驶"-->
<TextView
android:id="@+id/tvStatusDes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_mogo_autopilot_status_text_margin_start"
android:text="自动驾驶"
android:text="@string/module_core_automatic_driving"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_mogo_autopilot_status_text_size"
android:textStyle="bold"

View File

@@ -32,12 +32,13 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<!-- android:text="刹车中"-->
<TextView
android:id="@+id/tv_brake"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="刹车中"
android:text="@string/module_core_breaking"
android:textColor="#ffffff"
android:textSize="40dp"
android:visibility="gone"

View File

@@ -28,12 +28,13 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<!-- android:text="刹车中"-->
<TextView
android:id="@+id/tv_brake"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="刹车中"
android:text="@string/module_core_breaking"
android:textColor="#2D3E5F"
android:textSize="34dp"
android:textStyle="bold"

View File

@@ -9,12 +9,13 @@
android:minHeight="550dp"
app:roundLayoutRadius="30dp">
<!-- android:text="视频设备"-->
<TextView
android:id="@+id/tvCameraTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="视频设备"
android:text="@string/module_core_video_device"
android:textColor="#FFFFFF"
android:textSize="42dp"
app:layout_constraintEnd_toEndOf="parent"
@@ -43,13 +44,14 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="当前设备暂无信号,切换其他摄像头 3S"-->
<TextView
android:id="@+id/tvTipContent"
android:layout_width="448dp"
android:layout_height="100dp"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="当前设备暂无信号,切换其他摄像头 3S"
android:text="@string/module_core_no_signal_switch_camera"
android:textColor="#FFFFFF"
android:textSize="36dp"
android:visibility="gone"

View File

@@ -41,12 +41,13 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="加载中……"-->
<TextView
android:id="@+id/tvLoadingHit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="加载中……"
android:text="@string/module_core_loading"
android:textColor="#2D3E5F"
android:textSize="28dp"
app:layout_constraintEnd_toEndOf="@+id/liveProgressBar"

View File

@@ -29,6 +29,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- android:text="V2X总开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scV2XSwitch"
android:layout_width="wrap_content"
@@ -37,11 +38,12 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.4"
android:scaleY="1.4"
android:text="V2X总开关"
android:text="@string/module_core_v2x_main_switch"
android:textSize="@dimen/sp_28"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--V2N总开关-->
<!-- android:text="V2N总开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scV2NSwitch"
android:layout_width="wrap_content"
@@ -50,7 +52,7 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2N总开关"
android:text="@string/module_core_v2n_main_switch"
android:textSize="@dimen/sp_28"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/scV2XSwitch" />
@@ -64,6 +66,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<!--V2N新链路-->
<!-- android:text="V2N新链路"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scNewV2NData"
android:layout_width="wrap_content"
@@ -71,12 +74,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2N新链路"
android:text="@string/module_core_v2n_new_line"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/scV2XSwitch"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch" />
<!--V2N场景进PNC-->
<!-- android:text="V2N场景进PNC"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scV2nPnc"
android:layout_width="wrap_content"
@@ -84,12 +88,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2N场景进PNC"
android:text="@string/module_core_v2n_to_pnc"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch" />
<!--绿波通行-->
<!-- android:text="绿波通行"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scGreenWaveSop"
android:layout_width="wrap_content"
@@ -97,11 +102,12 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="绿波通行"
android:text="@string/module_core_green_wave_sop"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/scNewV2NData"
app:layout_constraintTop_toBottomOf="@id/scNewV2NData" />
<!--V2I总开关-->
<!-- android:text="V2I总开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scV2ISwitch"
android:layout_width="wrap_content"
@@ -110,11 +116,12 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2I总开关"
android:text="@string/module_core_v2i_main_switch"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scGreenWaveSop" />
<!--V2I场景进PNC-->
<!-- android:text="V2I场景进PNC"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scV2iPnc"
android:layout_width="wrap_content"
@@ -123,12 +130,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2I场景进PNC"
android:text="@string/module_core_v2i_to_pnc"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch" />
<!--闯红灯预警-->
<!-- android:text="闯红灯预警"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scRunRedLightSop"
android:layout_width="wrap_content"
@@ -136,12 +144,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="闯红灯预警"
android:text="@string/module_core_run_red_light_sop"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch" />
<!--路侧弱势交通参与者-->
<!-- android:text="路侧弱势交通参与者"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObuWeaknessTrafficSop"
android:layout_width="wrap_content"
@@ -149,11 +158,12 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="路侧弱势交通参与者"
android:text="@string/module_core_obu_weakness_traffic_sop"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/scV2iPnc"
app:layout_constraintTop_toBottomOf="@id/scV2iPnc" />
<!--V2V总开关-->
<!-- android:text="V2V总开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObuV2vView"
android:layout_width="wrap_content"
@@ -162,11 +172,12 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="V2V总开关"
android:text="@string/module_core_v2v_main_switch"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scObuWeaknessTrafficSop" />
<!--obu总开关-->
<!-- android:text="OBU总开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObu"
android:layout_width="wrap_content"
@@ -176,7 +187,7 @@
android:layout_marginBottom="@dimen/dp_10"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="OBU总开关"
android:text="@string/module_core_obu_main_switch"
android:textSize="@dimen/sp_28"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
@@ -204,13 +215,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- android:text="地图效果类"-->
<TextView
android:id="@+id/tvMapTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:text="地图效果类"
android:text="@string/module_core_map_title"
android:textColor="@color/black"
android:textSize="@dimen/sp_36"
app:layout_constraintLeft_toLeftOf="parent"
@@ -226,6 +238,7 @@
app:layout_constraintRight_toRightOf="parent" />
<!--危险障碍物颜色标记-->
<!-- android:text="危险障碍物颜色标记"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scMarkingObstacles"
android:layout_width="wrap_content"
@@ -233,12 +246,13 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="危险障碍物颜色标记"
android:text="@string/module_core_marking_obstacles"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
app:layout_constraintTop_toBottomOf="@id/tvMapTitle" />
<!--引导线动态效果-->
<!-- android:text="引导线动态效果"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scRouteDynamicEffect"
android:layout_width="wrap_content"
@@ -246,12 +260,13 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="引导线动态效果"
android:text="@string/module_core_route_dynamic_effect"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvMapTitle" />
<!--点云效果-->
<!-- android:text="点云效果"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scDrawPointCloudData"
android:layout_width="wrap_content"
@@ -260,13 +275,14 @@
android:layout_marginBottom="@dimen/dp_10"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="点云效果"
android:text="@string/module_core_point_cloud"
android:textSize="@dimen/sp_28"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
app:layout_constraintTop_toBottomOf="@id/scMarkingObstacles" />
<!--自车光圈-->
<!-- android:text="自车光圈"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scCarAperture"
android:layout_width="wrap_content"
@@ -275,7 +291,7 @@
android:layout_marginBottom="@dimen/dp_10"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="自车光圈"
android:text="@string/module_core_car_aperture"
android:textSize="@dimen/sp_28"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
@@ -304,13 +320,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- android:text="美化模式类"-->
<TextView
android:id="@+id/tvDemoTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:text="美化模式类"
android:text="@string/module_core_demo_title"
android:textColor="@color/black"
android:textSize="@dimen/sp_36"
app:layout_constraintLeft_toLeftOf="parent"
@@ -326,6 +343,7 @@
app:layout_constraintRight_toRightOf="parent" />
<!--美化模式-->
<!-- android:text="美化模式"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scDemoMode"
android:layout_width="wrap_content"
@@ -333,13 +351,14 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="美化模式"
android:text="@string/module_core_demo_mode"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/demoGuideLine"
app:layout_constraintTop_toBottomOf="@id/tvDemoTitle" />
<!--是否展示录包弹窗-->
<!-- android:text="录包弹窗"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scShowBagRecordWindow"
android:layout_width="wrap_content"
@@ -348,12 +367,13 @@
android:layout_marginBottom="@dimen/dp_10"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="录包弹窗"
android:text="@string/module_core_show_bag_record_window"
app:layout_constraintLeft_toLeftOf="@id/demoGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDemoTitle" />
<!--接管提醒-->
<!-- android:text="接管提醒"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scTakeOverRemind"
android:layout_width="wrap_content"
@@ -362,7 +382,7 @@
android:layout_marginBottom="@dimen/dp_10"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="接管提醒"
android:text="@string/module_core_take_over_remind"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/demoGuideLine"
app:layout_constraintTop_toBottomOf="@id/scDemoMode"
@@ -390,13 +410,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- android:text="与车相关类"-->
<TextView
android:id="@+id/tvVehicleTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:text="与车相关类"
android:text="@string/module_core_vehicle_title"
android:textColor="@color/black"
android:textSize="@dimen/sp_36"
app:layout_constraintStart_toStartOf="parent"
@@ -412,6 +433,7 @@
app:layout_constraintRight_toRightOf="parent" />
<!--PNC-park-会车-->
<!-- android:text="PNC-park-会车"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scParkVehCross"
android:layout_width="wrap_content"
@@ -419,7 +441,7 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="PNC-park-会车"
android:text="@string/module_core_park_veh_cross"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
@@ -427,6 +449,7 @@
/>
<!--PNC-park-超车-->
<!-- android:text="PNC-park-超车"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scParkVehOvertake"
android:layout_width="wrap_content"
@@ -434,13 +457,14 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="PNC-park-超车"
android:text="@string/module_core_park_veh_overtake"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
<!--绕障类功能-->
<!-- android:text="绕障类功能"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObstacleAvoidance"
android:layout_width="wrap_content"
@@ -448,13 +472,14 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="绕障类功能"
android:text="@string/module_core_obstacle_avoidance"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/scParkVehCross" />
<!--雨天模式-->
<!-- android:text="雨天模式"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scRainMode"
android:layout_width="wrap_content"
@@ -462,12 +487,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="雨天模式"
android:text="@string/module_core_rain_mode"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scParkVehOvertake" />
<!--弱网减速停车-->
<!-- android:text="弱网减速停车"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scWeakNetSlowDown"
android:layout_width="wrap_content"
@@ -475,12 +501,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="弱网减速停车"
android:text="@string/module_core_weak_net_slow_down"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scRainMode" />
<!--故障减速停车-->
<!-- android:text="故障减速停车"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scFaultSlowDown"
android:layout_width="wrap_content"
@@ -488,13 +515,14 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="故障减速停车"
android:text="@string/module_core_fault_slow_down"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/scRainMode" />
<!--考试功能面板-->
<!-- android:text="考试功能面板"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scExamControl"
android:layout_width="wrap_content"
@@ -502,7 +530,7 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="考试功能面板"
android:text="@string/module_core_exam_control"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
@@ -521,54 +549,60 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scExamControl">
<!-- android:text="全融合模式"-->
<RadioButton
android:id="@+id/rbFullIntegration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="全融合模式"
android:text="@string/module_core_full_integration"
android:textSize="32dp" />
<!-- android:text="盲区模式"-->
<RadioButton
android:id="@+id/rbBlind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="盲区模式"
android:text="@string/module_core_blind"
android:textSize="32dp" />
<!-- android:text="超视距模式"-->
<RadioButton
android:id="@+id/rbBeyondSight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="超视距模式"
android:text="@string/module_core_beyond_sight"
android:textSize="32dp" />
<!-- android:text="透传模式"-->
<RadioButton
android:id="@+id/rbTransparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="透传模式"
android:text="@string/module_core_transparent"
android:textSize="32dp" />
<!-- android:text="纯路侧模式"-->
<RadioButton
android:id="@+id/rbPureRoad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="纯路侧模式"
android:text="@string/module_core_pure_road"
android:textSize="32dp" />
</RadioGroup>
<!-- android:text="变道速度阈值:"-->
<TextView
android:id="@+id/tvSpeedThresholdTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="变道速度阈值:"
android:text="@string/module_core_speed_threshold_title"
android:textColor="#1A1A1A"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="parent"
@@ -609,17 +643,19 @@
app:layout_constraintLeft_toRightOf="@id/tvSpeed"
app:layout_constraintTop_toTopOf="@id/tvSpeed" />
<!-- android:text="设置阈值"-->
<Button
android:id="@+id/btnSpeedSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:padding="@dimen/dp_20"
android:text="设置阈值"
android:text="@string/module_core_speed_set"
app:layout_constraintBottom_toBottomOf="@id/ivSpeedAdd"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/ivSpeedAdd" />
<!-- android:text="超车速度阈值:"-->
<TextView
android:id="@+id/tvSpeedOverTakeLimit"
android:layout_width="wrap_content"
@@ -628,7 +664,7 @@
android:layout_marginStart="15dp"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginEnd="15dp"
android:text="超车速度阈值:"
android:text="@string/module_core_speed_over_take_limit"
android:textColor="#1A1A1A"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="parent"
@@ -673,13 +709,14 @@
app:layout_constraintLeft_toRightOf="@id/tvOverTakeLimit"
app:layout_constraintTop_toTopOf="@id/tvOverTakeLimit" />
<!-- android:text="设置阈值"-->
<Button
android:id="@+id/btnSpeedOverTakeSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:padding="@dimen/dp_20"
android:text="设置阈值"
android:text="@string/module_core_speed_set"
app:layout_constraintBottom_toBottomOf="@id/ivSpeedOverTakeAdd"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/ivSpeedOverTakeAdd" />
@@ -706,13 +743,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- android:text="业务类"-->
<TextView
android:id="@+id/tvOtherTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:text="业务类"
android:text="@string/module_core_other_title"
android:textColor="@color/black"
android:textSize="@dimen/sp_36"
app:layout_constraintStart_toStartOf="parent"
@@ -729,6 +767,7 @@
<!--限速标识-->
<!-- android:text="限速标识"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scSpeedLimit"
android:layout_width="wrap_content"
@@ -736,11 +775,12 @@
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="限速标识"
android:text="@string/module_core_speed_limit"
app:layout_constraintLeft_toRightOf="@id/otherGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle" />
<!--异常上报提示-->
<!-- android:text="异常上报提示"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scIPCReport"
android:layout_width="wrap_content"
@@ -748,11 +788,12 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="异常上报提示"
android:text="@string/module_core_ipc_report"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle" />
<!--360环视-->
<!-- android:text="360环视"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scNew360LookAround"
android:layout_width="wrap_content"
@@ -760,12 +801,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="360环视"
android:text="@string/module_core_360_look_around"
app:layout_constraintLeft_toRightOf="@id/otherGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scSpeedLimit" />
<!--清扫和业务模式切换开关(开-云控,关-运营)-->
<!-- android:text="清扫云控业务"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scSweeperModeSwitch"
android:layout_width="wrap_content"
@@ -773,13 +815,14 @@
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scIPCReport"
android:text="清扫云控业务"
android:text="@string/module_core_sweeper_mode_switch"
android:scaleY="1.2"
android:scaleX="1.2"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_10"/>
<!--自主算路验证模式-->
<!-- android:text="自主算路验证模式"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scLineRoutingVerify"
android:layout_width="wrap_content"
@@ -787,12 +830,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="自主算路验证模式"
android:text="@string/module_core_line_routing_verify"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintTop_toBottomOf="@id/scSweeperModeSwitch" />
<!--平行驾驶是否提醒开关 -->
<!-- android:text="平行驾驶介入及退出提醒"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scRemoteModelNotice"
android:layout_width="wrap_content"
@@ -800,12 +844,13 @@
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="平行驾驶介入及退出提醒"
android:text="@string/module_core_remote_model_notice"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintTop_toBottomOf="@id/scSweeperModeSwitch" />
<!--天气效果开关-->
<!-- android:text="天气效果开关"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scWeatherSwitch"
android:layout_width="wrap_content"
@@ -814,11 +859,12 @@
android:scaleX="1.2"
android:scaleY="1.2"
android:checked="true"
android:text="天气效果开关"
android:text="@string/module_core_weather_switch"
app:layout_constraintLeft_toLeftOf="@id/scIPCReport"
app:layout_constraintRight_toRightOf="@id/scIPCReport"
app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
<!-- android:text="系统启动状态展示"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scConnectionSwitch"
android:layout_width="wrap_content"
@@ -827,7 +873,7 @@
android:scaleX="1.2"
android:scaleY="1.2"
android:checked="true"
android:text="系统启动状态展示"
android:text="@string/module_core_connection_switch"
app:layout_constraintLeft_toLeftOf="@id/scWeatherSwitch"
app:layout_constraintRight_toRightOf="@id/scWeatherSwitch"
app:layout_constraintTop_toBottomOf="@id/scWeatherSwitch"
@@ -852,6 +898,7 @@
android:layout_width="match_parent"
android:layout_height="60dp" />
<!-- android:text="魔方指令测试"-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/mfTest"
android:layout_width="wrap_content"
@@ -859,7 +906,7 @@
android:layout_marginTop="5dip"
android:paddingTop="25dp"
android:paddingBottom="25dp"
android:text="魔方指令测试" />
android:text="@string/module_core_mf_test" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
@@ -918,12 +965,13 @@
android:layout_margin="10dp"
android:text="5s"
android:textSize="32dp" />
<!-- android:text="不接取"-->
<RadioButton
android:id="@+id/rbNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="不接取"
android:text="@string/module_core_not_accept"
android:textSize="32dp" />
</RadioGroup>

View File

@@ -50,6 +50,7 @@
</LinearLayout>
</ScrollView>
<!-- android:text="关闭"-->
<TextView
android:id="@+id/btnClose"
android:layout_width="@dimen/dp_356"
@@ -58,7 +59,7 @@
android:layout_marginBottom="@dimen/dp_65"
android:background="@drawable/bg_fsm_status_detail_close"
android:gravity="center"
android:text="关闭"
android:text="@string/module_core_close"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_40"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -14,6 +14,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- android:text="漫游模式"-->
<TextView
android:id="@+id/tvTitleView"
android:layout_width="match_parent"
@@ -22,7 +23,7 @@
android:ellipsize="end"
android:gravity="center"
android:maxLines="2"
android:text="漫游模式"
android:text="@string/module_core_roaming_mode"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_38"
app:layout_constraintLeft_toLeftOf="parent"

View File

@@ -18,9 +18,10 @@
<Key
android:codes="51"
android:keyLabel="3" />
<!-- android:keyLabel="删除"-->
<Key
android:codes="-5"
android:keyLabel="删除" />
android:keyLabel="@string/module_core_delete" />
</Row>
<Row>
@@ -34,11 +35,12 @@
android:codes="54"
android:keyLabel="6" />
<!-- android:keyLabel="确定"-->
<Key
android:codes="-4"
app:keyBackground="@drawable/keyboard_blue"
android:keyHeight="368dp"
android:keyLabel="确定"/>
android:keyLabel="@string/module_core_confirm"/>
</Row>
<Row>

View File

@@ -1,74 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- android:title="业务类"-->
<PreferenceCategory
android:layout="@layout/layout_operate_panel_preference_category_title"
android:title="业务类">
android:title="@string/module_core_other_title">
<!-- android:title="异常上报提示"-->
<SwitchPreferenceCompat
android:key="fault_report_tip"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="异常上报提示"
android:title="@string/module_core_ipc_report"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="限速标识"-->
<SwitchPreferenceCompat
android:key="limit_speed_marker"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="限速标识"
android:title="@string/module_core_speed_limit"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="天气效果开关"-->
<SwitchPreferenceCompat
android:key="weather_effect_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="天气效果开关"
android:title="@string/module_core_weather_switch"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="系统启动状态展示"-->
<SwitchPreferenceCompat
android:key="system_boot_status_show"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="系统启动状态展示"
android:title="@string/module_core_connection_switch"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="无人化演练任务拉取时间间隔"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithUnmanInterval
android:key="unmanned_demo_pull_interval"
android:layout="@layout/layout_operate_panel_preference_with_title_above"
android:title="无人化演练任务拉取时间间隔"
android:title="@string/module_core_unmanned_demo_pull_interval"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_radio_group_custom" />
<!-- android:title="自主算路验证模式"-->
<SwitchPreferenceCompat
android:key="self_routing_verify_mode"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="自主算路验证模式"
android:title="@string/module_core_line_routing_verify"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="平行驾驶介入及退出提醒"-->
<SwitchPreferenceCompat
android:key="remote_mode_show_notice"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="平行驾驶介入及退出提醒"
android:title="@string/module_core_remote_model_notice"
android:persistent="false"
android:defaultValue="true"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="清扫车云控业务"-->
<SwitchPreferenceCompat
android:key="sweeper_cloud_control"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="清扫车云控业务"
android:title="@string/module_core_sweeper_mode_switch1"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="360环视"-->
<SwitchPreferenceCompat
android:key="look_around_360"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="360环视"
android:title="@string/module_core_360_look_around"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="驾驶位视频流"-->
<SwitchPreferenceCompat
android:key="drive_seat_video_stream"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="驾驶位视频流"
android:title="@string/module_core_drive_seat_video_stream"
android:persistent="false"
android:enabled="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="MogoMind开关"-->
<SwitchPreferenceCompat
android:key="mogo_mind_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="MogoMind开关"
android:title="@string/module_core_mogo_mind_switch"
android:persistent="false"
android:enabled="true"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />

View File

@@ -1,27 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="美化模式" android:layout="@layout/layout_operate_panel_preference_category_title">
<!-- android:title="美化模式"-->
<PreferenceCategory android:title="@string/module_core_demo_mode" android:layout="@layout/layout_operate_panel_preference_category_title">
<!-- android:title="美化模式"-->
<SwitchPreferenceCompat
android:key="demo_switch"
android:title="美化模式"
android:title="@string/module_core_demo_mode"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="录包弹窗"-->
<SwitchPreferenceCompat
android:key="record_bag_dialog"
android:title="录包弹窗"
android:title="@string/module_core_show_bag_record_window"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="接管提醒"-->
<SwitchPreferenceCompat
android:key="take_over_wake"
android:title="接管提醒"
android:title="@string/module_core_take_over_remind"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="B2乘客屏驾驶状态美化呈现"-->
<SwitchPreferenceCompat
android:key="mogo_prettify_switch"
android:title="B2乘客屏驾驶状态美化呈现"
android:title="@string/module_core_mogo_prettify_switch"
android:persistent="false"
android:enabled="true"
android:layout="@layout/layout_operate_panel_preference_switch_compat"

View File

@@ -1,29 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="地图效果" android:layout="@layout/layout_operate_panel_preference_category_title">
<!-- android:title="地图效果"-->
<PreferenceCategory android:title="@string/module_core_map_title1" android:layout="@layout/layout_operate_panel_preference_category_title">
<!-- android:title="危险障碍物颜色标记"-->
<SwitchPreferenceCompat
android:key="danger_obstacles_color_mark"
android:title="危险障碍物颜色标记"
android:title="@string/module_core_marking_obstacles"
android:defaultValue="@bool/hd_is_pnc_warning"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="引导线动态效果"-->
<SwitchPreferenceCompat
android:key="route_guide_line_dynamic_effect"
android:title="引导线动态效果"
android:title="@string/module_core_route_dynamic_effect"
android:defaultValue="@bool/hd_route_dynamic_effect"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="点云效果"-->
<SwitchPreferenceCompat
android:key="point_cloud_effect"
android:title="点云效果"
android:title="@string/module_core_point_cloud"
android:defaultValue="@bool/hd_is_point_cloud_effect"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="自车光圈"-->
<SwitchPreferenceCompat
android:key="self_car_aperture"
android:title="自车光圈"
android:title="@string/module_core_car_aperture"
android:defaultValue="@bool/hd_is_self_car_anim"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"

View File

@@ -1,18 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- android:title="蘑方"-->
<PreferenceCategory
android:layout="@layout/layout_operate_panel_preference_category_title"
android:title="蘑方">
android:title="@string/module_core_mofnag">
<!-- android:title="连接蘑方"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithMoFang
android:key="mofang_connect"
android:title="连接蘑方"
android:title="@string/module_core_mofang_connect"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_mofang_connect"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_mofang_connect"/>
<!-- android:title="蘑方指令测试"-->
<SwitchPreferenceCompat
android:key="mofang_command_test"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="蘑方指令测试"
android:title="@string/module_core_mofang_command_test"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
</PreferenceCategory>

View File

@@ -1,107 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="V2X" android:layout="@layout/layout_operate_panel_preference_category_title">
<!-- android:title="NDE数据上车上行"-->
<SwitchPreferenceCompat
android:key="nde_upward_switch"
android:title="NDE数据上车上行"
android:title="@string/module_core_nde_upward_switch"
android:persistent="false"
android:disableDependentsState="false"
android:defaultValue="@bool/nde_upward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="车辆图像上传行云大模型"-->
<SwitchPreferenceCompat
android:key="image_upload_switch"
android:title="车辆图像上传行云大模型"
android:title="@string/module_core_image_upload_switch"
android:persistent="false"
android:defaultValue="@bool/image_upload_switch"
android:dependency="nde_upward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat_dependee"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="NDE数据上车下行"-->
<SwitchPreferenceCompat
android:key="nde_downward_switch"
android:title="NDE数据上车下行"
android:title="@string/module_core_nde_downward_switch"
android:persistent="false"
android:disableDependentsState="false"
android:defaultValue="@bool/nde_downward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="事件数据进PNC应用"-->
<SwitchPreferenceCompat
android:key="nde_event_data_to_pnc"
android:title="事件数据进PNC应用"
android:title="@string/module_core_nde_event_data_to_pnc"
android:persistent="false"
android:dependency="nde_downward_switch"
android:defaultValue="@bool/nde_event_data_to_pnc"
android:layout="@layout/layout_operate_panel_preference_switch_compat_dependee"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="感知数据进PNC应用"-->
<SwitchPreferenceCompat
android:key="nde_perception_data_to_pnc"
android:title="感知数据进PNC应用"
android:title="@string/module_core_nde_perception_data_to_pnc"
android:persistent="false"
android:dependency="nde_downward_switch"
android:defaultValue="@bool/nde_perception_data_to_pnc"
android:layout="@layout/layout_operate_panel_preference_switch_compat_dependee"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="云控基础平台上行"-->
<SwitchPreferenceCompat
android:key="cloud_control_upward"
android:title="云控基础平台上行"
android:title="@string/module_core_cloud_control_upward"
android:persistent="false"
android:defaultValue="@bool/cloud_control_upward"
android:disableDependentsState="false"
android:layout="@layout/layout_operate_panel_preference_top_divider"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="云控基础平台下行"-->
<SwitchPreferenceCompat
android:key="cloud_control_downward"
android:title="云控基础平台下行"
android:title="@string/module_core_cloud_control_downward"
android:persistent="false"
android:defaultValue="@bool/cloud_control_downward"
android:disableDependentsState="false"
android:layout="@layout/layout_operate_panel_preference_bottom_divider"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="OBU上报V2I、V2V上行"-->
<SwitchPreferenceCompat
android:key="obu_upward_switch"
android:title="OBU上报V2I、V2V上行"
android:title="@string/module_core_obu_upward_switch"
android:persistent="false"
android:defaultValue="@bool/v2i_downward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="V2I下行"-->
<SwitchPreferenceCompat
android:key="v2i_downward_switch"
android:title="V2I下行"
android:title="@string/module_core_v2i_downward_switch"
android:persistent="false"
android:defaultValue="@bool/v2i_downward_switch"
android:disableDependentsState="false"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="弱势交通参与者"-->
<SwitchPreferenceCompat
android:key="v2i_weak_traffic_participant"
android:title="弱势交通参与者"
android:title="@string/module_core_v2i_weak_traffic_participant"
android:persistent="false"
android:defaultValue="@bool/v2i_weak_traffic_participant"
android:dependency="v2i_downward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat_dependee"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="感知数据进PNC应用"-->
<SwitchPreferenceCompat
android:key="v2i_perception_data_to_pnc"
android:title="感知数据进PNC应用"
android:title="@string/module_core_v2i_perception_data_to_pnc"
android:persistent="false"
android:defaultValue="@bool/v2i_perception_data_to_pnc"
android:dependency="v2i_downward_switch"
android:layout="@layout/layout_operate_panel_preference_switch_compat_dependee"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat"/>
<!-- android:title="V2V下行"-->
<SwitchPreferenceCompat
android:key="v2v_downward_switch"
android:title="V2V下行"
android:title="@string/module_core_v2v_downward_switch"
android:persistent="false"
android:defaultValue="@bool/v2v_downward_switch"
android:disableDependentsState="false"

View File

@@ -1,127 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- android:title="车辆相关"-->
<PreferenceCategory
android:layout="@layout/layout_operate_panel_preference_category_title"
android:title="车辆相关">
android:title="@string/module_core_vehicle_title1">
<!-- android:title="PNC-Park-会车"-->
<SwitchPreferenceCompat
android:key="pnc_park_intersection_car"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="PNC-Park-会车"
android:title="@string/module_core_park_veh_cross"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="PNC-Park-超车"-->
<SwitchPreferenceCompat
android:key="pnc_park_overtake_car"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="PNC-Park-超车"
android:title="@string/module_core_park_veh_overtake"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="绕障减速停车"-->
<SwitchPreferenceCompat
android:key="detour_retard_park"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="绕障减速停车"
android:title="@string/module_core_detour_retard_park"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="雨天模式"-->
<SwitchPreferenceCompat
android:key="rain_day"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="雨天模式"
android:title="@string/module_core_rain_mode"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="故障减速停车"-->
<SwitchPreferenceCompat
android:key="fault_deceleration_park"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="故障减速停车"
android:title="@string/module_core_fault_slow_down"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="弱网减速停车"-->
<SwitchPreferenceCompat
android:key="weak_net_deceleration_park"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="弱网减速停车"
android:title="@string/module_core_weak_net_slow_down"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="考试功能面板"-->
<SwitchPreferenceCompat
android:key="exam_function_panel"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:title="考试功能面板"
android:title="@string/module_core_exam_control"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="融合模式"-->
<PreferenceCategory
android:layout="@layout/layout_operate_panel_preference_primary_category_title"
android:title="融合模式" />
android:title="@string/module_core_integration_mode" />
<!-- android:title="全融合模式"-->
<CheckBoxPreference
android:key="all_merge_mode"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:title="全融合模式"
android:title="@string/module_core_full_integration"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="盲区模式"-->
<CheckBoxPreference
android:key="blind_area_mode"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:title="盲区模式"
android:title="@string/module_core_blind"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="超视距模式"-->
<CheckBoxPreference
android:key="beyond_visual_range_mode"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:title="超视距模式"
android:title="@string/module_core_beyond_sight"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="透传模式"-->
<CheckBoxPreference
android:key="transparent_transfer_mode"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:title="透传模式"
android:title="@string/module_core_transparent"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="纯路侧模式"-->
<CheckBoxPreference
android:key="pure_obu_mode"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:title="纯路侧模式"
android:title="@string/module_core_pure_road"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="AIP功能"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceGrayableSwitch
android:key="aip_function"
android:layout="@layout/layout_operate_panel_preference_switch_compat"
android:persistent="false"
android:title="AIP功能"
android:title="@string/module_core_aip_function"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" />
<!-- android:title="驾驶模式"-->
<Preference
android:key="header_driving_style"
android:layout="@layout/layout_operate_panel_preference_primary_category_title"
android:selectable="false"
android:title="驾驶模式" />
android:title="@string/module_core_header_driving_style" />
<!-- android:title="正常模式"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceGrayableCheckBox
android:key="driving_style_normal"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:persistent="false"
android:title="正常模式"
android:title="@string/module_core_driving_style_normal"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="安全模式"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceGrayableCheckBox
android:key="driving_style_safety"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:persistent="false"
android:title="安全模式"
android:title="@string/module_core_driving_style_safety"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="专业模式"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceGrayableCheckBox
android:key="driving_style_professional"
android:layout="@layout/layout_operate_panel_preference_checkbox_compat"
android:persistent="false"
android:title="专业模式"
android:title="@string/module_core_driving_style_professional"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" />
<!-- android:title="自动驾驶速度阈值"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithSpeedSetting
android:key="auto_pilot_speed_thresholds"
android:layout="@layout/layout_operate_panel_preference_with_title_above"
android:title="自动驾驶速度阈值"
android:title="@string/module_core_auto_pilot_speed_thresholds"
android:persistent="false"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_edit_with_button" />
<!-- android:title="变道速度阈值"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithSpeedSetting
android:key="change_lane_speed_thresholds"
android:title="变道速度阈值"
android:title="@string/module_core_change_lane_speed_thresholds"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_with_title_above"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_text_with_button" />
<!-- android:title="超车速度阈值"-->
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithSpeedSetting
android:key="overtake_speed_thresholds"
android:title="超车速度阈值"
android:title="@string/module_core_overtake_speed_thresholds"
android:persistent="false"
android:layout="@layout/layout_operate_panel_preference_with_title_above"
android:widgetLayout="@layout/layout_operate_panel_preference_widget_text_with_button" />

View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- android:title="外屏欢迎语(1-9个字符避免生僻字符)"-->
<PreferenceCategory
android:layout="@layout/layout_operate_panel_preference_category_title"
android:title="外屏欢迎语(1-9个字符避免生僻字符)">
android:title="@string/module_core_title_welcome_words">
<com.mogo.eagle.core.function.hmi.ui.operate.preferences.PreferenceWithWelcomeWords
android:key="welcome_words"
android:persistent="false"

View File

@@ -6,35 +6,41 @@
android:key="v2x"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="V2X" />
<!-- android:title="地图效果"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$HdMapPreferenceFragmentCompat"
android:key="hdmap"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="地图效果" />
android:title="@string/module_core_map_title1" />
<!-- android:title="美化模式"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$DemoPreferenceFragmentCompat"
android:key="demo"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="美化模式" />
android:title="@string/module_core_demo_mode" />
<!-- android:title="车辆相关"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$VehiclesPreferenceFragmentCompat"
android:key="vehicle"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="车辆相关" />
android:title="@string/module_core_vehicle_title1" />
<!-- android:title="业务类"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$BusinessPreferenceFragmentCompat"
android:key="biz"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="业务类" />
android:title="@string/module_core_other_title" />
<!-- android:title="蘑方"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$MoFangPreferenceFragmentCompat"
android:key="mofang"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="蘑方" />
android:title="@string/module_core_mofnag" />
<!-- android:title="欢迎语"-->
<Preference
android:fragment="com.mogo.eagle.core.function.hmi.ui.operate.OperatePanelLayout$WelcomeWordsPreferenceCompat"
android:key="welcome_words"
android:layout="@layout/layout_operate_panel_preference_header"
android:title="欢迎语"/>
android:title="@string/module_core_welcome_words"/>
</androidx.preference.PreferenceScreen>

View File

@@ -1,5 +1,8 @@
package com.mogo.eagle.core.data.deva.bindingcar
import com.mogo.eagle.core.data.R
import com.mogo.eagle.core.utilcode.util.StringUtils
/**
* @author XuXinChao
* @description 工控机升级状态实体类
@@ -139,11 +142,14 @@ class AdUpgradeStateHelper {
val minute = time/60
val second = time%60
return if(minute>0 && second>0){
minute.toString()+"分钟"+second+""
// minute.toString()+"分钟"+second+"秒"
minute.toString() + StringUtils.getString(R.string.module_och_minute) + second + StringUtils.getString(R.string.module_och_second)
}else if(minute>0){
minute.toString()+"分钟"
// minute.toString()+"分钟"
minute.toString() + StringUtils.getString(R.string.module_och_minute)
}else if(second>0){
second.toString()+""
// second.toString()+"秒"
second.toString() + StringUtils.getString(R.string.module_och_second)
}else{
""
}

View File

@@ -263,6 +263,7 @@
<string name="module_och_km">公里</string>
<string name="module_och_m"></string>
<string name="module_och_minute">分钟</string>
<string name="module_och_second"></string>
<string name="module_och_version">版本:</string>
<string name="module_och_crossing_tailback">路口车龙</string>
<string name="module_och_crossing_tailback_desc">前方路口有车龙</string>
@@ -386,7 +387,7 @@
<string name="module_core_connected_passenger_sn">连接成功的乘客屏SN为</string>
<string name="module_core_passenger_plate">乘客屏车牌号:</string>
<string name="module_core_mac_address">Mac地址为</string>
<!-- <string name="module_core_authentication_not_enabled">未开启认证</string>-->
<string name="module_core_authentication_not_enabled">未开启认证</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<!-- <string name="module_core_certificate_authentication_timeout">证书认证超时</string>-->
<!-- <string name="module_core_successful_verification_ipc_certificate">成功校验域控证书</string>-->
<!-- <string name="module_core_get_root_certificate_failed">获取ROOT证书异常</string>-->
@@ -413,11 +414,11 @@
<string name="module_core_takeover_restore_vehicle">请接管恢复车辆状态</string>
<!-- <string name="module_core_bag_record_success">bag录制成功</string>-->
<!-- <string name="module_core_bag_record_fail">bag录制失败</string>-->
<!-- <string name="module_core_normal">正常</string>-->
<!-- <string name="module_core_error">异常</string>-->
<string name="module_core_normal">正常</string>
<string name="module_core_error">异常</string>
<!-- <string name="module_core_trace_route_calc">寻迹算路</string>-->
<!-- <string name="module_core_cloud_socket">云Socket连接</string>-->
<!-- <string name="module_core_time">时间:</string>-->
<string name="module_core_time">时间:</string>
<!-- <string name="module_core_safety_officer">安全员</string>-->
<!-- <string name="module_core_qa_dev">QA、研发</string>-->
<!-- <string name="module_core_product">产品、运营、演示</string>-->
@@ -479,8 +480,8 @@
<string name="module_core_unknown">未知</string>
<string name="module_core_pedestrian">行人</string>
<string name="module_core_non_motor_vehicle">非机动车</string>
<string name="module_core_startup_successful">启动成功</string><!--TODO 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_starting">启动中…</string><!--TODO 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_startup_successful">启动成功</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_starting">启动中…</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_request_failed">请求失败 , </string>
<string name="module_core_play_failed">播放失败</string>
<string name="module_core_method_not_support_driver_screen">此方法不支持司机屏使用</string>
@@ -514,6 +515,7 @@
<string name="module_core_other">其他</string>
<string name="module_core_empty"></string>
<string name="module_core_cause">原因:%s</string>
<string name="module_core_cause1">原因:</string>
<string name="module_core_cos_uploading">COS桶上传中</string>
<string name="module_core_cancel_upload">取消上传</string>
<string name="module_core_cancel">取消</string>
@@ -524,6 +526,277 @@
<string name="module_core_ipc_disk_clean">清理磁盘</string>
<string name="module_core_reported">已上报</string>
<string name="module_core_report">上报</string>
<string name="module_core_fsm_normal">FSM正常</string>
<string name="module_core_fsm_error">FSM异常</string>
<string name="module_core_fsm_error_recover">FSM异常状态已恢复</string>
<string name="module_core_fsm_error_unknown">FSM状态未知</string>
<string name="module_core_suggested_procedure_not_available">建议操作:暂无</string>
<string name="module_core_suggested_procedure">建议操作:</string>
<string name="module_core_not_available_suggested_procedure">暂无建议操作</string>
<string name="module_core_fault_handling_strategy">故障策略:</string>
<string name="module_core_failure_cause_not_available">故障原因:暂无</string>
<string name="module_core_failure_cause">故障原因:</string>
<string name="module_core_consequences_failure_not_available">故障后果:暂无</string>
<string name="module_core_consequences_failure">故障后果:</string>
<string name="module_core_pack_up">收起</string>
<string name="module_core_fold">折叠</string>
<string name="module_core_unfold">展开</string>
<string name="module_core_type">类型:</string>
<string name="module_core_message_source">消息来源:</string>
<string name="module_core_succeed">成功</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_fail">失败</string>
<string name="module_core_one_minute_later_power_off">请等待1分钟再执行车辆下电</string>
<string name="module_core_have_tag_lengthen_popup_window_time">存在相同的tag延长弹窗时间</string>
<string name="module_core_no_signal_switch_camera">当前设备暂无信号,切换其他摄像头 3S</string>
<string name="module_core_alert_intersection_signal_lost_auto_close">当前路口信号丢失3S 后自动关闭</string>
<string name="module_core_sunday"></string>
<string name="module_core_monday"></string>
<string name="module_core_tuesday"></string>
<string name="module_core_wednesday"></string>
<string name="module_core_thursday"></string>
<string name="module_core_friday"></string>
<string name="module_core_saturday"></string>
<string name="module_core_january">一月</string>
<string name="module_core_february">二月</string>
<string name="module_core_march">三月</string>
<string name="module_core_april">四月</string>
<string name="module_core_may">五月</string>
<string name="module_core_june">六月</string>
<string name="module_core_july">七月</string>
<string name="module_core_august">八月</string>
<string name="module_core_september">九月</string>
<string name="module_core_october">十月</string>
<string name="module_core_november">十一月</string>
<string name="module_core_december">十二月</string>
<string name="module_core_sunday1">周日</string>
<string name="module_core_monday1">周一</string>
<string name="module_core_tuesday1">周二</string>
<string name="module_core_wednesday1">周三</string>
<string name="module_core_thursday1">周四</string>
<string name="module_core_friday1">周五</string>
<string name="module_core_saturday1">周六</string>
<string name="module_core_warning_vehicle_fault_safe_park">识别车辆故障,建议安全停车并查看操作建议</string>
<string name="module_core_warning_vehicle_abnormal_safe_park">识别车辆异常,建议尽快安全停车,查看操作建议</string>
<string name="module_core_vehicle_return_notice">还车通知</string>
<string name="module_core_operation_platform">运营平台</string>
<string name="module_core_scheduling_cancellation_confirmation">调度取消确认</string>
<string name="module_core_vehicle_cancel_autopilot_target_location">车辆将取消到以下位置的自动驾驶</string>
<string name="module_core_immediate_stop_vehicle">请立即停车!请立即停车!</string>
<string name="module_core_probing_road_condition_for_you">正为您探查道路情况</string>
<string name="module_core_accident_source">事故来源:</string>
<string name="module_core_accident_time">事故时间:</string>
<string name="module_core_processing_time">处理时间:</string>
<string name="module_core_accident_cause">事故原因:</string>
<string name="module_core_treatment_state">处理状态:</string>
<string name="module_core_pending">待处理</string>
<string name="module_core_processed">已处理</string>
<string name="module_core_accident_spot">事故地点:</string>
<string name="module_core_accident_grade">事故等级:</string>
<string name="module_core_upcoming_green_light">即将绿灯</string>
<string name="module_core_upcoming_green_light1">即将绿灯,</string>
<string name="module_core_prepare_to_depart">请准备出发</string>
<string name="module_core_upcoming_green_light_prepare_to_depart">即将绿灯,请准备出发</string>
<string name="module_core_upcoming_red_light">即将红灯</string>
<string name="module_core_upcoming_red_light1">即将红灯,</string>
<string name="module_core_warning_slow_down">请减速慢行</string>
<string name="module_core_upcoming_red_light_warning_slow_down">即将红灯,请减速慢行</string>
<string name="module_core_upcoming_yellow_light">即将黄灯</string>
<string name="module_core_upcoming_yellow_light1">即将黄灯,</string>
<string name="module_core_upcoming_yellow_light_warning_slow_down">即将黄灯,请减速慢行</string>
<string name="module_core_disconnect_mofang">断开魔方连接</string>
<string name="module_core_connect_mofang">开始连接魔方</string>
<string name="module_core_disconnecting_mofang">正在断开魔方连接, 请稍候…</string>
<string name="module_core_connecting_mofang">正在连接魔方, 请稍候</string>
<string name="module_core_driver_server_start">司机屏Server启动</string>
<string name="module_core_cloud_socket_connect">云Socket连接</string>
<string name="module_core_trail_tracking_route_calculation">寻迹算路</string>
<string name="module_core_ipc_disconnect">域控未连接</string>
<string name="module_core_ipc_connected">域控已连接</string>
<string name="module_core_ipc_connecting">域控连接中</string>
<string name="module_core_ipc_reconnecting">域控重连中</string>
<string name="module_core_ipc_connect_error">域控连接异常</string>
<string name="module_core_ipc_illegal_address">非法域控地址</string>
<string name="module_core_ipc_search_address">正在搜索域控地址</string>
<string name="module_core_ipc_not_found_address">找不到可用的域控地址</string>
<string name="module_core_ipc_heartbeat_timeout">域控心跳超时</string>
<string name="module_core_ipc_server_disconnected">域控主动断开连接</string>
<string name="module_core_local_cert_downloaded">本机证书已下载</string>
<string name="module_core_local_cert_download_failed">本机证书下载异常:</string>
<string name="module_core_check_success">成功校验</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_vehicle_deployment_task_result">车辆部署任务执行结果</string>
<string name="module_core_task_download_complete_power_restart">任务下载完成,一分钟后操作车辆下电重启</string>
<string name="module_core_vehicle_deployment_task_failed_report">车辆部署任务执行失败,建议上报问题</string>
<string name="module_core_vehicle_deployment_task_failed">车辆部署任务执行失败</string>
<string name="module_core_speed_adjust_step_5km">每次调整车速±5km/h,点击确定生效</string>
<string name="module_core_notice_shut_down_power_off">优雅停服完成,请操作车辆下电重启</string>
<string name="module_core_installing">部署中</string>
<string name="module_core_installing_time_used">剩余%d分钟%d秒</string>
<string name="module_core_installing_time_used1">剩余%d秒</string>
<string name="module_core_update_time">更新时间:</string>
<string name="module_core_estimated_pass_time">,预计%s秒后通过</string>
<string name="module_core_using_cloud_planning_pass_intersection">正在使用云端规划通过路口</string>
<string name="module_core_has_exceeded_odd">已超出ODD</string><!--TODO 国际化 需要域控提供对应的英文 否则切换英文冷启动将会出现问题-->
<string name="module_core_cold_ipc_disconnected">域控未连接或主动断开连接,建议重启车辆并上报问题</string>
<string name="module_core_cold_ipc_connect_exception">本设备与域控未连接建议检查WIFI状态、域控开关</string>
<string name="module_core_cold_ipc_illegal_address">非法域控地址,建议重启车辆并上报问题</string>
<string name="module_core_cold_ipc_not_found_address">找不到域控可用地址,建议检查车载路由器及域控是否开机</string>
<string name="module_core_cold_ipc_certification_failed">域控证书认证异常</string>
<string name="module_core_cold_ipc_heartbeat_timeout">心跳超时(连接域控成功后在一段时间内未收到域控任何数据)</string>
<string name="module_core_cold_ipc_protocol_mismatch">协议不匹配</string>
<string name="module_core_cold_ipc_server_disconnected">域控主动断开连接,建议重启车辆并上报问题</string>
<string name="module_core_cold_started_success">冷启动成功</string>
<string name="module_core_cold_start_failed_ssm">SSM返回冷启动失败</string>
<string name="module_core_cold_network_usable">网络连接可用</string>
<string name="module_core_cold_network_unusable">网络连接不可用</string>
<string name="module_core_cold_ipc_started">系统启动成功,即将进入主页</string>
<string name="module_core_cold_ipc_start_error">系统启动异常,建议重启车辆并上报问题</string>
<string name="module_core_cold_ipc_start_timeout">系统启动超时,建议重启车辆并上报问题</string>
<string name="module_core_cold_started_success1">启动成功</string>
<string name="module_core_cold_start_failed">启动失败</string>
<string name="module_core_cold_start_timeout1">启动超时</string>
<string name="module_core_cold_ipc_connected">域控连接成功</string>
<string name="module_core_cold_ipc_connected_fail">域控连接失败:</string>
<string name="module_core_cold_ipc_connecting">正在重连域控…</string>
<string name="module_core_cold_ssm_connected">SSM连接成功</string>
<string name="module_core_cold_ssm_connect_error">SSM连接异常</string>
<string name="module_core_cold_ssm_timeout">等待SSM超时</string>
<string name="module_core_cold_ssm_await_timeout">等待冷启动超时</string>
<string name="module_core_ipc_starting">系统启动中…</string>
<string name="module_core_ipc_started">系统启动成功</string>
<string name="module_core_ipc_start_error">系统启动异常</string>
<string name="module_core_ipc_tel_node_connect_error">Telematics连接异常</string>
<string name="module_core_reboot_car">建议重启车辆并上报问题</string>
<string name="module_core_cold_start_error">系统冷启动异常</string>
<!-- <string name="module_core_network_connect">网络连接:</string>-->
<!-- <string name="module_core_network_connected">已连接</string>-->
<!-- <string name="module_core_network_disconnected">已断开</string>-->
<!-- <string name="module_core_network_disconnected_times">断链次数:</string>-->
<string name="module_core_suggested_speed_test_range">建议车速%d-%dkm/h</string>
<string name="module_core_pass_intersection_count">可丝滑通过%d个路口</string>
<string name="module_core_trip_core_data_summary">全程 %skm智慧道路护航 %skm全息感知覆盖率 %d%%,车辆服务次数%d次</string>
<string name="module_core_trip_key_data">旅途全长 %skm全感知覆盖率 %d%%,车辆服务次数%d次</string>
<string name="module_core_request_rejected">请求已被拒绝</string>
<string name="module_core_eagle_eye_request">鹰眼请求</string>
<string name="module_core_roaming_distance">漫游距离</string>
<string name="module_core_estimated_download_complete">预计%s下载完成</string>
<string name="module_core_set_image">请设置图片或传递大小</string>
<string name="module_core_show_pop_window">显示悬浮窗</string>
<string name="module_core_comma"></string>
<string name="module_core_record_audio">录音机</string>
<string name="module_core_read_external_storage">读取外部文件</string>
<string name="module_core_write_external_storage">写入外部文件</string>
<string name="module_core_location">定位</string>
<string name="module_core_current_device_no_signal">当前设备暂无信号</string>
<string name="module_core_app_name">应用名称</string>
<string name="module_core_bag_record_reminder">录包提醒</string>
<string name="module_core_look_over">查看</string>
<string name="module_core_look_over1">查 看</string>
<string name="module_core_communique">官方公告</string>
<string name="module_core_car_return_notice">还车通知</string>
<string name="module_core_pull_over">靠边停车</string>
<string name="module_core_PassengerNoticeContent">5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。5月31日起蘑菇车联无人化运营时间将调整为09:00~21:00欢迎市民朋友前来体验。</string>
<string name="module_core_notice">通知</string>
<string name="module_core_fm_info">FM信息</string>
<string name="module_core_system_info">系统信息</string>
<string name="module_core_bag_record">录包</string>
<string name="module_core_operation_panel">运营面板</string>
<string name="module_core_never">从不</string>
<string name="module_core_connect">连接</string>
<string name="module_core_traffic_accident_task_detail">交通事故任务详情</string>
<string name="module_core_accept">接 受</string>
<string name="module_core_refuse">拒 绝</string>
<string name="module_core_warning_info">预警信息</string>
<string name="module_core_automatic_driving">自动驾驶</string>
<string name="module_core_kill_app">杀死APP</string>
<string name="module_core_detection">检测</string>
<string name="module_core_confirm">确定</string>
<string name="module_core_logout">退出登录</string>
<string name="module_core_breaking">刹车中</string>
<string name="module_core_video_device">视频设备</string>
<string name="module_core_loading">加载中……</string>
<string name="module_core_v2x_main_switch">V2X总开关</string>
<string name="module_core_v2n_main_switch">V2N总开关</string>
<string name="module_core_v2i_main_switch">V2I总开关</string>
<string name="module_core_v2v_main_switch">V2V总开关</string>
<string name="module_core_obu_main_switch">OBU总开关</string>
<string name="module_core_v2n_new_line">V2N新链路</string>
<string name="module_core_v2n_to_pnc">V2N场景进PNC</string>
<string name="module_core_v2i_to_pnc">V2I场景进PNC</string>
<string name="module_core_green_wave_sop">绿波通行</string>
<string name="module_core_run_red_light_sop">闯红灯预警</string>
<string name="module_core_obu_weakness_traffic_sop">路侧弱势交通参与者</string>
<string name="module_core_map_title">地图效果类</string>
<string name="module_core_map_title1">地图效果</string>
<string name="module_core_marking_obstacles">危险障碍物颜色标记</string>
<string name="module_core_route_dynamic_effect">引导线动态效果</string>
<string name="module_core_point_cloud">点云效果</string>
<string name="module_core_car_aperture">自车光圈</string>
<string name="module_core_demo_title">美化模式类</string>
<string name="module_core_demo_mode">美化模式</string>
<string name="module_core_show_bag_record_window">录包弹窗</string>
<string name="module_core_take_over_remind">接管提醒</string>
<string name="module_core_vehicle_title">与车相关类</string>
<string name="module_core_park_veh_cross">PNC-Park-会车</string>
<string name="module_core_park_veh_overtake">PNC-Park-超车</string>
<string name="module_core_obstacle_avoidance">绕障类功能</string>
<string name="module_core_rain_mode">雨天模式</string>
<string name="module_core_weak_net_slow_down">弱网减速停车</string>
<string name="module_core_fault_slow_down">故障减速停车</string>
<string name="module_core_exam_control">考试功能面板</string>
<string name="module_core_full_integration">全融合模式</string>
<string name="module_core_integration_mode">融合模式</string>
<string name="module_core_blind">盲区模式</string>
<string name="module_core_beyond_sight">超视距模式</string>
<string name="module_core_transparent">透传模式</string>
<string name="module_core_pure_road">纯路侧模式</string>
<string name="module_core_speed_threshold_title">变道速度阈值:</string>
<string name="module_core_speed_set">设置阈值</string>
<string name="module_core_speed_over_take_limit">超车速度阈值:</string>
<string name="module_core_other_title">业务类</string>
<string name="module_core_speed_limit">限速标识</string>
<string name="module_core_ipc_report">异常上报提示</string>
<string name="module_core_360_look_around">360环视</string>
<string name="module_core_sweeper_mode_switch">清扫云控业务</string>
<string name="module_core_sweeper_mode_switch1">清扫车云控业务</string>
<string name="module_core_line_routing_verify">自主算路验证模式</string>
<string name="module_core_remote_model_notice">平行驾驶介入及退出提醒</string>
<string name="module_core_weather_switch">天气效果开关</string>
<string name="module_core_connection_switch">系统启动状态展示</string>
<string name="module_core_mf_test">魔方指令测试</string>
<string name="module_core_not_accept">不接取</string>
<string name="module_core_close">关闭</string>
<string name="module_core_roaming_mode">漫游模式</string>
<string name="module_core_delete">删除</string>
<string name="module_core_unmanned_demo_pull_interval">无人化演练任务拉取时间间隔</string>
<string name="module_core_drive_seat_video_stream">驾驶位视频流</string>
<string name="module_core_mogo_mind_switch">MogoMind开关</string>
<string name="module_core_mogo_prettify_switch">B2乘客屏驾驶状态美化呈现</string>
<string name="module_core_mofnag">蘑方</string>
<string name="module_core_mofang_connect">连接蘑方</string>
<string name="module_core_mofang_command_test">蘑方指令测试</string>
<string name="module_core_nde_upward_switch">NDE数据上车上行</string>
<string name="module_core_image_upload_switch">车辆图像上传行云大模型</string>
<string name="module_core_nde_downward_switch">NDE数据上车下行</string>
<string name="module_core_nde_event_data_to_pnc">事件数据进PNC应用</string>
<string name="module_core_nde_perception_data_to_pnc">感知数据进PNC应用</string>
<string name="module_core_cloud_control_upward">云控基础平台上行</string>
<string name="module_core_cloud_control_downward">云控基础平台下行</string>
<string name="module_core_obu_upward_switch">OBU上报V2I、V2V上行</string>
<string name="module_core_v2i_downward_switch">V2I下行</string>
<string name="module_core_v2i_weak_traffic_participant">弱势交通参与者</string>
<string name="module_core_v2i_perception_data_to_pnc">感知数据进PNC应用</string>
<string name="module_core_v2v_downward_switch">V2V下行</string>
<string name="module_core_vehicle_title1">车辆相关</string>
<string name="module_core_detour_retard_park">绕障减速停车</string>
<string name="module_core_aip_function">AIP功能</string>
<string name="module_core_header_driving_style">驾驶模式</string>
<string name="module_core_driving_style_normal">正常模式</string>
<string name="module_core_driving_style_safety">安全模式</string>
<string name="module_core_driving_style_professional">专业模式</string>
<string name="module_core_auto_pilot_speed_thresholds">自动驾驶速度阈值</string>
<string name="module_core_change_lane_speed_thresholds">变道速度阈值</string>
<string name="module_core_overtake_speed_thresholds">超车速度阈值</string>
<string name="module_core_title_welcome_words">外屏欢迎语(19个字符避免生僻字符)</string>
<string name="module_core_welcome_words">欢迎语</string>
</resources>