Merge branch 'dev_robotaxi-d_251110_8.2.8_i18n' into dev_robotaxi-d_251204_8.3.0_xfk_temp

# Conflicts:
#	OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningView.kt
This commit is contained in:
xinfengkun
2025-12-17 11:29:10 +08:00
471 changed files with 10137 additions and 2778 deletions

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

@@ -36,6 +36,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.AppUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.MogoData
@@ -140,7 +141,8 @@ class CarInfoTabView @JvmOverloads constructor(
)
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
// ToastUtils.showShort("正在下载最新版本,请稍候再试...")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_downloading_new_version)
return@setOnClickListener
}
CallerDevaToolsManager.queryAppUpgrade { upgradeStatus, errorInfo ->
@@ -168,7 +170,8 @@ class CarInfoTabView @JvmOverloads constructor(
CallerAutoPilotControlManager.sendOtaPadMsgQuery(query.toString())
CallerOTAManager.invokeOtaPadMsgQuery()
}else{
ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级")
// ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ssm_not_start)
}
}
@@ -385,16 +388,20 @@ class CarInfoTabView @JvmOverloads constructor(
leftTime = productInfo.optInt("left_time")//剩余时间,单位秒
}
val upgradeTime = if(leftTime > 60){
"预计部署过程用时${leftTime/60}分钟${leftTime%60}"
// "预计部署过程用时${leftTime/60}分钟${leftTime%60}秒"
StringUtils.getString(R.string.module_core_deployment_time_used, leftTime / 60, leftTime % 60)
}else{
"预计部署过程用时${leftTime%60}"
// "预计部署过程用时${leftTime%60}秒"
StringUtils.getString(R.string.module_core_deployment_time_used1, leftTime % 60)
}
CallerHmiManager.showOTAUpgradeDialog(1,true,upgradeReason+upgradeTime)
}else{
ToastUtils.showLong("请结束订单后触发升级")
// ToastUtils.showLong("请结束订单后触发升级")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_stop_order_upgrade)
}
}else{
ToastUtils.showLong("暂无待升级任务!")
// ToastUtils.showLong("暂无待升级任务!")
ToastUtils.showLong(R.string.module_mogo_core_function_devatools_not_upgrade_task)
}
}

View File

@@ -42,6 +42,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.JsonParser
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String
@@ -183,7 +184,8 @@ class FaultReasonView @JvmOverloads constructor(
//故障类型选择
tvFaultType.setOnClickListener {
if (!hasLevel2) {
ToastUtils.showShort("运营后台没有配置故障类型")
// ToastUtils.showShort("运营后台没有配置故障类型")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_operation_not_configured_fault_type)
return@setOnClickListener
}
if (faultTypeSelectStatus) {
@@ -223,11 +225,13 @@ class FaultReasonView @JvmOverloads constructor(
//故障原因选择
tvFaultReason.setOnClickListener {
if (tvFaultType.text.isEmpty()) {
ToastUtils.showShort("请先选择故障类型")
// ToastUtils.showShort("请先选择故障类型")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_operation_choose_fault_type)
return@setOnClickListener
}
if(!hasLevel3){
ToastUtils.showShort("后台未配置故障原因")
// ToastUtils.showShort("后台未配置故障原因")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_cloud_not_fault_cause)
return@setOnClickListener
}
@@ -257,7 +261,8 @@ class FaultReasonView @JvmOverloads constructor(
}
ivTimeAdd.setOnClickListener {
if (workOrderOccurrenceTime + 60000 > System.currentTimeMillis()) {
ToastUtils.showShort("发生时间应在当前时间之前")
// ToastUtils.showShort("发生时间应在当前时间之前")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_occurrence_time_should_be_before_current_time)
return@setOnClickListener
}
workOrderOccurrenceTime += 60000
@@ -271,7 +276,8 @@ class FaultReasonView @JvmOverloads constructor(
if (hasFocus) {
edit.hint = ""
} else {
edit.hint = "手动输入"
// edit.hint = "手动输入"
edit.hint = StringUtils.getString(R.string.module_core_manual_input)
}
}
etNoteInput.addTextChangedListener(object : TextWatcher {
@@ -312,11 +318,13 @@ class FaultReasonView @JvmOverloads constructor(
tvFaultReport.setOnClickListener {
if(ClickUtils.isFastClick()){
if (level2Name.isEmpty()) {
ToastUtils.showShort("请完整填写再上报")
// ToastUtils.showShort("请完整填写再上报")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_complete_submit_again)
return@setOnClickListener
}
if (hasLevel3 && level3Name.isEmpty()) {
ToastUtils.showShort("请完整填写再上报")
// ToastUtils.showShort("请完整填写再上报")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_complete_submit_again)
return@setOnClickListener
}
reportNote = etNoteInput.text.toString()
@@ -359,7 +367,8 @@ class FaultReasonView @JvmOverloads constructor(
val q = RegeocodeQuery(latLon, 200f, GeocodeSearch.AMAP)
geocodeSearch.getFromLocationAsyn(q)
}else{
ToastUtils.showShort("请勿连续上报,稍后再试")
// ToastUtils.showShort("请勿连续上报,稍后再试")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_dot_continuous_upload)
}
}
@@ -380,7 +389,8 @@ class FaultReasonView @JvmOverloads constructor(
// 不显示听写对话框
ret = it.startListening(mRecognizerListener)
if (ret != ErrorCode.SUCCESS) {
ToastUtils.showShort("听写失败,错误码:$ret,请点击网址https://www.xfyun.cn/document/error-code查询解决方案")
// ToastUtils.showShort("听写失败,错误码:$ret,请点击网址https://www.xfyun.cn/document/error-code查询解决方案")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_iflytek_speech_recognizer_fail, ret)
}
}
//开始录音,展示放大缩小动效
@@ -405,7 +415,8 @@ class FaultReasonView @JvmOverloads constructor(
*/
private val mInitListener = InitListener { code ->
if (code != ErrorCode.SUCCESS) {
ToastUtils.showShort("讯飞语音听写初始化失败,错误码:$code")
// ToastUtils.showShort("讯飞语音听写初始化失败,错误码:$code")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_iflytek_speech_recognizer_init_fail, code)
}
}
@@ -499,7 +510,9 @@ class FaultReasonView @JvmOverloads constructor(
override fun problemPadAddError(msg: String) {
super.problemPadAddError(msg)
ToastUtils.showShort("故障原因上报失败$msg")
// ToastUtils.showShort("故障原因上报失败$msg")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_fault_cause_upload_fail, msg)
}
override fun getCategoriesSuccess(list: List<CategoryInfo>) {
@@ -533,7 +546,8 @@ class FaultReasonView @JvmOverloads constructor(
hasLevel3 = false
} else {
hasLevel2 = false
ToastUtils.showShort("故障类型列表为空")
// ToastUtils.showShort("故障类型列表为空")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_fault_type_list_empty)
}
}
}
@@ -542,7 +556,8 @@ class FaultReasonView @JvmOverloads constructor(
override fun getCategoriesError(msg: String) {
super.getCategoriesError(msg)
if(ProjectUtils.isSaas()){
ToastUtils.showShort("故障列表获取失败:$msg")
// ToastUtils.showShort("故障列表获取失败:$msg")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_fault_list_get_fail, msg)
}
}

View File

@@ -86,7 +86,8 @@ class ReportTypeView @JvmOverloads constructor(
//一键上报
ivOneClickReport.setOnClickListener {
if(!canOneReport){
ToastUtils.showShort("故障描述获取失败不能上报")
// ToastUtils.showShort("故障描述获取失败不能上报")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_fault_des_get_fail)
return@setOnClickListener
}
hasReportOperate = true
@@ -145,7 +146,8 @@ class ReportTypeView @JvmOverloads constructor(
clickListener?.closeReportView()
},1500)
}else{
ToastUtils.showShort("主动录包命令下发失败")
// ToastUtils.showShort("主动录包命令下发失败")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_initiative_record_bad_cmd_send_fail)
this@ReportTypeView.visibility = View.GONE
clickListener?.closeReportView()
}
@@ -236,7 +238,8 @@ class ReportTypeView @JvmOverloads constructor(
override fun problemPadAddError(msg: String) {
super.problemPadAddError(msg)
ToastUtils.showShort("故障原因上报失败$msg")
// ToastUtils.showShort("故障原因上报失败$msg")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_fault_cause_upload_fail, msg)
ThreadUtils.runOnUiThread {
this.visibility = View.GONE
clickListener?.closeReportView()
@@ -246,7 +249,8 @@ class ReportTypeView @JvmOverloads constructor(
override fun getCategoriesSuccess(list: List<CategoryInfo>) {
super.getCategoriesSuccess(list)
if(list.isEmpty()){
ToastUtils.showShort("一键上报故障描述后台未配置")
// ToastUtils.showShort("一键上报故障描述后台未配置")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_fault_cloud_not_configured)
canOneReport = false
}else{
when (level) {
@@ -275,7 +279,8 @@ class ReportTypeView @JvmOverloads constructor(
override fun getCategoriesError(msg: String) {
super.getCategoriesError(msg)
ToastUtils.showShort("一键上报故障描述获取失败$msg")
// ToastUtils.showShort("一键上报故障描述获取失败$msg")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_fault_desc_get_fail, msg)
canOneReport = false
}

View File

@@ -34,6 +34,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.JsonParser
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String
@@ -100,22 +101,28 @@ class WorkOrderView @JvmOverloads constructor(
wrap_radio_group.setOnCheckedChangeListener{_, checkedId ->
when(checkedId){
R.id.rb_type_software->{
workOrderType = "软件"
// workOrderType = "软件"
workOrderType = StringUtils.getString(R.string.module_core_software)
}
R.id.rb_type_kit->{
workOrderType = "套件"
// workOrderType = "套件"
workOrderType = StringUtils.getString(R.string.module_core_kit)
}
R.id.rb_type_vehicle->{
workOrderType = "车辆"
// workOrderType = "车辆"
workOrderType = StringUtils.getString(R.string.module_core_vehicle)
}
R.id.rb_type_capacity->{
workOrderType = "运力"
// workOrderType = "运力"
workOrderType = StringUtils.getString(R.string.module_core_capacity)
}
R.id.rb_type_environment->{
workOrderType = "环境"
// workOrderType = "环境"
workOrderType = StringUtils.getString(R.string.module_core_environment)
}
R.id.rb_type_other->{
workOrderType = "其他"
// workOrderType = "其他"
workOrderType = StringUtils.getString(R.string.module_core_other)
}
}
}
@@ -128,7 +135,8 @@ class WorkOrderView @JvmOverloads constructor(
}
iv_time_add.setOnClickListener {
if(workOrderOccurrenceTime + 60000 > System.currentTimeMillis()){
ToastUtils.showShort("发生时间应在当前时间之前")
// ToastUtils.showShort("发生时间应在当前时间之前")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_occurrence_time_should_be_before_current_time)
return@setOnClickListener
}
workOrderOccurrenceTime += 60000
@@ -140,7 +148,8 @@ class WorkOrderView @JvmOverloads constructor(
if(hasFocus){
edit.hint = ""
}else{
edit.hint = "手动输入"
// edit.hint = "手动输入"
edit.hint = StringUtils.getString(R.string.module_core_manual_input)
}
}
et_describe_input.addTextChangedListener(object: TextWatcher {
@@ -184,11 +193,13 @@ class WorkOrderView @JvmOverloads constructor(
if(ClickUtils.isFastClick()){
//工单问题类型必选,没有选择,进行提示
if(workOrderType.isEmpty()){
ToastUtils.showShort("请选择问题类型")
// ToastUtils.showShort("请选择问题类型")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_choose_issue_type)
return@setOnClickListener
}
if(et_describe_input.text.toString().isEmpty()){
ToastUtils.showShort("请填写问题描述")
// ToastUtils.showShort("请填写问题描述")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_choose_issue_desc)
return@setOnClickListener
}
GlobalScope.launch(Dispatchers.IO){
@@ -212,7 +223,8 @@ class WorkOrderView @JvmOverloads constructor(
CallerDevaToolsManager.workOrderReport(workOrderReportInfo)
}
}else{
ToastUtils.showShort("请勿连续上报,稍后再试")
// ToastUtils.showShort("请勿连续上报,稍后再试")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_dot_continuous_upload)
}
}
@@ -234,7 +246,8 @@ class WorkOrderView @JvmOverloads constructor(
// 不显示听写对话框
ret = it.startListening(mRecognizerListener)
if (ret != ErrorCode.SUCCESS) {
ToastUtils.showShort("听写失败,错误码:$ret,请点击网址https://www.xfyun.cn/document/error-code查询解决方案")
// ToastUtils.showShort("听写失败,错误码:$ret,请点击网址https://www.xfyun.cn/document/error-code查询解决方案")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_iflytek_speech_recognizer_fail, ret)
}
}
//开始录音,展示放大缩小动效
@@ -258,7 +271,8 @@ class WorkOrderView @JvmOverloads constructor(
*/
private val mInitListener = InitListener { code ->
if (code != ErrorCode.SUCCESS) {
ToastUtils.showShort("讯飞语音听写初始化失败,错误码:$code")
// ToastUtils.showShort("讯飞语音听写初始化失败,错误码:$code")
ToastUtils.showShort(com.zhjt.mogo_core_function_devatools.R.string.module_mogo_core_function_devatools_iflytek_speech_recognizer_init_fail, code)
}
}
@@ -322,7 +336,8 @@ class WorkOrderView @JvmOverloads constructor(
}
override fun workOrderReportSuccess() {
ToastUtils.showShort("工单上报成功")
// ToastUtils.showShort("工单上报成功")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_work_order_upload_success)
ThreadUtils.runOnUiThread {
this@WorkOrderView.visibility = View.GONE
clickListener?.closeWorkOrderView()
@@ -330,7 +345,8 @@ class WorkOrderView @JvmOverloads constructor(
}
override fun workOrderReportError() {
ToastUtils.showShort("工单上报失败")
// ToastUtils.showShort("工单上报失败")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_work_order_upload_fail)
}
interface ClickListener{

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,12 +183,14 @@ 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 {
if(recordBagMsg.isShow){
ToastUtils.showShort("当前录包上报面板已打开,请勿重复操作")
// ToastUtils.showShort("当前录包上报面板已打开,请勿重复操作")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_bad_case_view_opened)
}else{
//打开被动录包弹窗
CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean, activity, false)
@@ -202,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 ->
@@ -224,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
@@ -263,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()){
@@ -294,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->
@@ -318,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
@@ -336,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
@@ -355,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)
@@ -378,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
@@ -408,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
@@ -579,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

@@ -44,15 +44,18 @@ class ToolDriverRomaView @JvmOverloads constructor(
toolDriverRomaContainer.setOnClickListener {
if (ClickUtils.isClickTooFrequent(this, 2500)) {
ToastUtils.showShort("不要频繁点击哦~")
// ToastUtils.showShort("不要频繁点击哦~")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_dot_often_click)
return@setOnClickListener
}
if (!click) {
ToastUtils.showShort("漫游准备中,请等待")
// ToastUtils.showShort("漫游准备中,请等待")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_roam_starting)
return@setOnClickListener
}
if (!MogoStatusManager.getInstance().isSocketOnLine) {
ToastUtils.showShort("长链状态异常,请检查链接后开启漫游")
// ToastUtils.showShort("长链状态异常,请检查链接后开启漫游")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_long_connection_state_error)
return@setOnClickListener
}
click = false

View File

@@ -48,7 +48,8 @@ class ToolRestartSystemView @JvmOverloads constructor(
*/
private fun showRebootDialog() {
if (!connectStatus) {
ToastUtils.showShort("尚未连接工控机,无法重启系统")
// ToastUtils.showShort("尚未连接工控机,无法重启系统")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_reboot_ipc)
return
}
//dialog
@@ -58,12 +59,14 @@ class ToolRestartSystemView @JvmOverloads constructor(
override fun confirm() {
if (CallerAutoPilotStatusListenerManager.getState() == 2) {
//当前处于自动驾驶状态不可进行重启Toast提示
ToastUtils.showShort("请先退出自动驾驶状态")
// ToastUtils.showShort("请先退出自动驾驶状态")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_please_exit_autopilot_state)
} else {
//确认重启
CallerLogger.d("$M_HMI$TAG", "reboot confirm")
CallerAutoPilotControlManager.sendIpcReboot()
ToastUtils.showLong("重启命令已发送")
// ToastUtils.showLong("重启命令已发送")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_send_reboot_success)
//打开冷启动页面
CallerHmiManager.showColdStartWindow()
}

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
@@ -200,30 +201,36 @@ class ToolStopServiceView @JvmOverloads constructor(
*/
private fun powerOff() {
if (!connectStatus) {
ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
// ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_shutdown_ipc)
return
}
if (AppConfigInfo.dockerVersion.isEmpty()) {
ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
// ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_shutdown_ipc)
return
}
if (ParseVersionUtils.parseVersion(true, AppConfigInfo.dockerVersion) < 40100) {
ToastUtils.showShort("此域控版本不支持一键停服功能最低支持版本为4.1.0")
// ToastUtils.showShort("此域控版本不支持一键停服功能最低支持版本为4.1.0")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_version_nonsupport_shutdown_ipc)
return
}
if (CallerAutoPilotStatusListenerManager.getState() == 2) {
//当前处于自动驾驶状态不可进行重启Toast提示
ToastUtils.showShort("请先退出自动驾驶状态")
// ToastUtils.showShort("请先退出自动驾驶状态")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_please_exit_autopilot_state)
return
}
if (isExecutingPowerOff) {
//一键停服命令下发执行中
ToastUtils.showShort("一键停服命令下发中,请勿重复点击")
// ToastUtils.showShort("一键停服命令下发中,请勿重复点击")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_sending_shutdown_ipc)
return
}
if (isPowerOffCountDown) {
//系统停服中
ToastUtils.showShort("系统停服中,请勿重复点击")
// ToastUtils.showShort("系统停服中,请勿重复点击")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_shutdowning_ipc)
return
}
//将是否正在下发一键停服命令标签改为true
@@ -378,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
@@ -98,30 +99,37 @@ class DiskCopyView @JvmOverloads constructor(
//开始拷贝数据
val result = CallerAutoPilotControlManager.sendCopyBagCopyDate(currentCopyDate)
if(result){
ToastUtils.showShort("已发起拷贝")
// ToastUtils.showShort("已发起拷贝")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_start_copy)
}else{
ToastUtils.showShort("拷贝命令发送失败")
// ToastUtils.showShort("拷贝命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_copy_cmd_error)
}
}
2 -> {
//拷贝中
ToastUtils.showShort("正在拷贝中...")
// ToastUtils.showShort("正在拷贝中...")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_copying)
}
3 -> {
//拷贝成功
ToastUtils.showShort("当前日期数据已拷贝成功")
// ToastUtils.showShort("当前日期数据已拷贝成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_now_date_copy_success)
}
4 -> {
//剩余空间不足
ToastUtils.showShort("当前硬盘剩余空间不足")
// ToastUtils.showShort("当前硬盘剩余空间不足")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_insufficient_disk_space)
}
5 -> {
//所选日期无法拷贝
ToastUtils.showShort("所选日期无法拷贝")
// ToastUtils.showShort("所选日期无法拷贝")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_choose_date_not_copy)
}
}
}else{
ToastUtils.showShort("请勿连续点击,稍后再试")
// ToastUtils.showShort("请勿连续点击,稍后再试")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_bad_case_do_no_click_continuously)
}
}
//拔出硬盘
@@ -134,13 +142,16 @@ class DiskCopyView @JvmOverloads constructor(
//如果处于未拷贝状态,则调用硬盘安全弹出请求
val result = CallerAutoPilotControlManager.sendCopyBagSafeUnmount()
if(result){
ToastUtils.showShort("硬盘安全弹出命令已发送")
// ToastUtils.showShort("硬盘安全弹出命令已发送")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_disk_safely_ejecting)
}else{
ToastUtils.showShort("硬盘安全弹出命令发送失败")
// ToastUtils.showShort("硬盘安全弹出命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_disk_safely_ejecting_fail)
}
}
}else{
ToastUtils.showShort("请勿连续点击,稍后再试")
// ToastUtils.showShort("请勿连续点击,稍后再试")
ToastUtils.showShort(R.string.module_mogo_core_function_devatools_bad_case_do_no_click_continuously)
}
}
@@ -148,7 +159,8 @@ class DiskCopyView @JvmOverloads constructor(
viewDiskCopyDate.setOnClickListener {
if(copyStatus == 2){
//数据拷贝中,不可再选择日期
ToastUtils.showShort("数据拷贝中,不可再次选择日期,请耐心等待")
// ToastUtils.showShort("数据拷贝中,不可再次选择日期,请耐心等待")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_data_copying)
}else{
//隐藏当前视图
pbDiskCopyProgress.visibility = View.GONE
@@ -163,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 -> {
""
@@ -380,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->{
""
@@ -556,7 +594,8 @@ class DiskCopyView @JvmOverloads constructor(
//硬盘是否已安全弹出,是-True,否-False
Logger.i(TAG,"硬盘是否已安全弹出,是-True,否-False="+diskCopy.diskUnmount)
if(diskCopy.diskUnmount){
ToastUtils.showShort("硬盘已安全弹出")
// ToastUtils.showShort("硬盘已安全弹出")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_disk_safely_ejecting)
//隐藏数据落盘辅助工具视图
this@DiskCopyView.visibility = View.GONE
}

View File

@@ -30,9 +30,11 @@ class TerminateCopyDataDialog(context: Context) :
tvCopyTerminateConfirm.setOnClickListener {
val result = CallerAutoPilotControlManager.sendCopyBagAbortCopy()
if(result){
ToastUtils.showShort("终止数据拷贝命令已发送")
// ToastUtils.showShort("终止数据拷贝命令已发送")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_stop_copy)
}else{
ToastUtils.showShort("终止数据拷贝命令发送失败")
// ToastUtils.showShort("终止数据拷贝命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_stop_copy_fail)
}
dismiss()
}

View File

@@ -13,6 +13,7 @@ import com.mogo.eagle.core.function.api.autopilot.*
import com.mogo.eagle.core.function.api.lookaround.data.*
import com.mogo.eagle.core.function.call.autopilot.*
import com.mogo.eagle.core.function.call.devatools.*
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.*
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
@@ -299,7 +300,8 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas
delay(5000)
val d = data
if (d == null || !d.isValid()) {
Toast.makeText(Utils.getApp(), "当前MAP版本不支持360环视请升级MAP版本", Toast.LENGTH_SHORT).show()
// Toast.makeText(Utils.getApp(), "当前MAP版本不支持360环视请升级MAP版本", Toast.LENGTH_SHORT).show()
Toast.makeText(Utils.getApp(), R.string.module_core_ipc_version_nonsupport_360_look_around, Toast.LENGTH_SHORT).show()
}
}
}

View File

@@ -91,7 +91,8 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta
return
}
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
// ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_disconnect_not_use_mofang)
return
}
if (keyCode == KeyEvent.KEYCODE_A) {
@@ -169,7 +170,8 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta
return
}
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
// ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_disconnect_not_use_mofang)
return
}
if (keyCode == KeyEvent.KEYCODE_A) {
@@ -218,7 +220,8 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta
return
}
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
// ToastUtils.showShort("工控机连接异常,无法执行魔方命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_disconnect_not_use_mofang)
return
}
if (keyCodes.size != 2) {

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,12 +173,14 @@ 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 {
if(recordBagMsg.isShow){
ToastUtils.showShort("当前录包上报面板已打开,请勿重复操作")
// ToastUtils.showShort("当前录包上报面板已打开,请勿重复操作")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_bad_case_view_opened)
}else{
//打开被动录包弹窗
CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean, activity, false)
@@ -192,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 ->
@@ -220,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
@@ -264,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()){
@@ -298,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->
@@ -322,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)
}
}
//对布局进行展开折叠操作
@@ -333,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
@@ -352,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
@@ -374,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
@@ -394,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
@@ -415,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)
@@ -446,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(
@@ -474,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
@@ -494,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
@@ -517,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
@@ -538,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
@@ -576,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
@@ -591,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
@@ -745,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

@@ -25,6 +25,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
@@ -137,13 +138,20 @@ open class AutomaticExplorationView @JvmOverloads constructor(
private fun initData() {
val dataList = ArrayList<AutoExplorationEntity>(7)
dataList.add(AutoExplorationEntity("当前道路事件分析",2000L,false))
dataList.add(AutoExplorationEntity("前方车辆",2000L,false))
dataList.add(AutoExplorationEntity("两侧车辆",2600L,false))
dataList.add(AutoExplorationEntity("后方车辆",3000L,false))
dataList.add(AutoExplorationEntity("前方路口车辆流速分析",4000L,false))
dataList.add(AutoExplorationEntity("前方路口行人/非机动车分析",4300L,false))
dataList.add(AutoExplorationEntity("路侧视频分析",5000L,false))
// dataList.add(AutoExplorationEntity("当前道路事件分析",2000L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_crossing_event_analyse),2000L,false))
// dataList.add(AutoExplorationEntity("前方车辆",2000L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_vehicle_ahead),2000L,false))
// dataList.add(AutoExplorationEntity("两侧车辆",2600L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_vehicle_both_sides),2600L,false))
// dataList.add(AutoExplorationEntity("后方车辆",3000L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_vehicle_behind),3000L,false))
// dataList.add(AutoExplorationEntity("前方路口车辆流速分析",4000L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_analysis_vehicle_flow_ahead),4000L,false))
// dataList.add(AutoExplorationEntity("前方路口行人/非机动车分析",4300L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_pedestrians_ahead),4300L,false))
// dataList.add(AutoExplorationEntity("路侧视频分析",5000L,false))
dataList.add(AutoExplorationEntity(StringUtils.getString(R.string.module_och_sidewalk_video_analysis),5000L,false))
automaticExplorationAdapter?.setListener(object: AutomaticExplorationAdapter.CompleteListener{
override fun onComplete(entity: AutoExplorationEntity) {
var allComplete = true //所有探查项目都探查完毕
@@ -160,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

@@ -1227,7 +1227,8 @@ class OperatePanelLayout : LinearLayout {
"01" -> {
//关闭成功
Log.d(TAG, "-- 驾驶位视频流关闭成功 --")
ToastUtils.showShort("驾驶位视频流功能已关闭")
// ToastUtils.showShort("驾驶位视频流功能已关闭")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_drive_seat_video_stream_close)
FunctionBuildConfig.isDriveSeatVideoStream = false
lastTimeOnSendDriveVideo = 0L
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_DRIVE_SEAT_VIDEO_STREAM)?.also { it.isChecked = false }
@@ -1235,7 +1236,8 @@ class OperatePanelLayout : LinearLayout {
"11" -> {
//打开成功
Log.d(TAG, "-- 驾驶位视频流打开成功 --")
ToastUtils.showShort("驾驶位视频流功能已开启")
// ToastUtils.showShort("驾驶位视频流功能已开启")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_drive_seat_video_stream_open)
FunctionBuildConfig.isDriveSeatVideoStream = true
lastTimeOnSendDriveVideo = 0L
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_DRIVE_SEAT_VIDEO_STREAM)?.also { it.isChecked = true }
@@ -1245,7 +1247,8 @@ class OperatePanelLayout : LinearLayout {
"0" -> {
Log.d(TAG, "-- 设备下线 --")
FunctionBuildConfig.isDriveSeatVideoStream = false // 设备下线
ToastUtils.showShort("驾驶位视频流功能因设备下线已关闭")
// ToastUtils.showShort("驾驶位视频流功能因设备下线已关闭")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_drive_seat_video_stream_device_live_close)
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_DRIVE_SEAT_VIDEO_STREAM)?.also {
it.isChecked = false
it.isEnabled = false
@@ -1304,17 +1307,20 @@ class OperatePanelLayout : LinearLayout {
if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()||
CallerHmiManager.isShuttleDriverPerformTask()
) {
ToastUtils.showLong("请先结束当前任务")
// ToastUtils.showLong("请先结束当前任务")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_current_task)
return false
}
if (CallerHmiManager.isTaxiUnmanedDriverTakingOrders()) {
ToastUtils.showLong("请先结束接单状态")
// ToastUtils.showLong("请先结束接单状态")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_receive_order_state)
return false
}
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(true)
} else {
if (CallerHmiManager.isTaxiUnmanedDriverLineRoutingPerformTask()) {
ToastUtils.showLong("请先结束当前任务")
// ToastUtils.showLong("请先结束当前任务")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_current_task)
return false
}
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(false)
@@ -1373,13 +1379,19 @@ class OperatePanelLayout : LinearLayout {
val interval = SystemClock.elapsedRealtime() - lastTimeOnSendDriveVideo
if (interval <= TimeUnit.SECONDS.toMillis(10)) {
val seconds = TimeUnit.MILLISECONDS.toSeconds(interval)
ToastUtils.showShort("未收到乘客屏响应,${ if (seconds >= 1) "请${seconds}秒后再试" else "请稍候再试"}")
// ToastUtils.showShort("未收到乘客屏响应,${ if (seconds >= 1) "请${seconds}秒后再试" else "请稍候再试"}")
if (seconds >= 1) {
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_drive_seat_video_stream_device_response_second, seconds)
} else {
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_drive_seat_video_stream_device_response)
}
return false
}
}
lastTimeOnSendDriveVideo = SystemClock.elapsedRealtime()
val isChecked = newValue as? Boolean ?: false
ToastUtils.showShort(if (isChecked) "驾驶位视频流功能开启指令已发送,等待乘客端响应" else "驾驶位视频流功能关闭指令已发送,等待乘客端响应")
// ToastUtils.showShort(if (isChecked) "驾驶位视频流功能开启指令已发送,等待乘客端响应" else "驾驶位视频流功能关闭指令已发送,等待乘客端响应")
ToastUtils.showShort(if (isChecked) R.string.module_mogo_core_function_hmi_send_open_drive_seat_video_stream_cmd else R.string.module_mogo_core_function_hmi_send_close_drive_seat_video_stream_cmd)
clickEventAnalytics("视频流驾驶位开关", isChecked)
val map = HashMap<String, String>()
map["open"] = if (isChecked) "1" else "0"
@@ -2135,13 +2147,16 @@ class OperatePanelLayout : LinearLayout {
val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(FunctionBuildConfig.maxSpeedLimit.toInt())
when {
isSuccess -> {
ToastUtils.showShort("车速设置成功,立即生效")
// ToastUtils.showShort("车速设置成功,立即生效")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_success)
}
else -> {
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
ToastUtils.showShort("设置车速失败,请启动域控制器")
// ToastUtils.showShort("设置车速失败,请启动域控制器")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_fail)
} else {
ToastUtils.showShort("设置车速失败")
// ToastUtils.showShort("设置车速失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_fail_disconnect)
}
}
}
@@ -2154,10 +2169,12 @@ class OperatePanelLayout : LinearLayout {
hmiAction("SOP 变道绕障的目标障碍物速度阈值", FunctionBuildConfig.detouringSpeed)
val isSuccess = CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed)
if (isSuccess == true) {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
// ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_detouring_speed_success)
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "成功")
} else {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
// ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_detouring_speed_fail)
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "失败")
}
clickEventAnalytics("变道速度阈值", true)
@@ -2167,10 +2184,12 @@ class OperatePanelLayout : LinearLayout {
FunctionBuildConfig.overTakeSpeed = preference.extras.getDouble(PreferenceWithSpeedSetting.KEY_BUNDLE_CURRENT_VALUE, FunctionBuildConfig.overTakeSpeed)
val isSuccess = CallerAutoPilotControlManager.sendOvertakeMaxSpeed(FunctionBuildConfig.overTakeSpeed)
if (isSuccess == true) {
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置成功")
// ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_sop_detouring_speed_success)
hmiAction("SOP 超车目标障碍物速度阈值设置", "成功")
} else {
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置失败")
// ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_sop_detouring_speed_fail)
hmiAction("SOP 超车目标障碍物速度阈值设置", "失败")
}
clickEventAnalytics("超车速度阈值", true)

View File

@@ -84,7 +84,8 @@ class PreferenceWithSpeedSetting : Preference {
btnOk.isEnabled = false
holder.itemView.isEnabled = false
ll.isSelected = false
ToastUtils.showShort("阈值最大为${max.safeScale()}$unit")
// ToastUtils.showShort("阈值最大为${max.safeScale()}$unit")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_limit_max_value, "${max.safeScale()}$unit")
return@doAfterTextChanged
}
val temp = current.safeScale()
@@ -118,7 +119,8 @@ class PreferenceWithSpeedSetting : Preference {
minus.onClickWidthDuration(100) {
val minusAfter = cur - step
if (minusAfter < min) {
ToastUtils.showShort("阈值最小为${min.safeScale()}$unit")
// ToastUtils.showShort("阈值最小为${min.safeScale()}$unit")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_limit_min_value, "${min.safeScale()}$unit")
return@onClickWidthDuration
}
cur = minusAfter
@@ -140,7 +142,8 @@ class PreferenceWithSpeedSetting : Preference {
add.onClickWidthDuration(100) {
val addAfter = cur + step
if (addAfter > max) {
ToastUtils.showShort("阈值最大为${max.safeScale()}$unit")
// ToastUtils.showShort("阈值最大为${max.safeScale()}$unit")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_limit_max_value, "${max.safeScale()}$unit")
return@onClickWidthDuration
}
holder.itemView.isEnabled = false

View File

@@ -1133,7 +1133,8 @@ internal class DebugSettingView @JvmOverloads constructor(
//重启工控机所有节点
btnIpcReboot.onClick {
CallerAutoPilotControlManager.sendIpcReboot()
ToastUtils.showLong("重启命令已发送")
// ToastUtils.showLong("重启命令已发送")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_send_reboot_success)
}
btnAppReboot.onClick {
killApp()

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
@@ -646,7 +647,8 @@ internal class SOPSettingView @JvmOverloads constructor(
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
ivSpeedReduce.setOnClickListener {
if (FunctionBuildConfig.detouringSpeed <= 3) {
ToastUtils.showShort("阈值最小可为3 m/s")
// ToastUtils.showShort("阈值最小可为3 m/s")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_detouring_speed_min_value)
} else {
FunctionBuildConfig.detouringSpeed--
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
@@ -655,7 +657,8 @@ internal class SOPSettingView @JvmOverloads constructor(
}
ivSpeedAdd.setOnClickListener {
if (FunctionBuildConfig.detouringSpeed >= 7) {
ToastUtils.showShort("阈值最大可为7 m/s")
// ToastUtils.showShort("阈值最大可为7 m/s")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_detouring_speed_max_value)
} else {
FunctionBuildConfig.detouringSpeed++
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
@@ -666,10 +669,12 @@ internal class SOPSettingView @JvmOverloads constructor(
val isSuccess =
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble())
if (isSuccess == true) {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
// ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_detouring_speed_success)
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "成功")
} else {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
// ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_detouring_speed_fail)
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "失败")
}
clickEventAnalytics("变道速度阈值",true)
@@ -677,7 +682,8 @@ internal class SOPSettingView @JvmOverloads constructor(
ivSpeedOverTakeReduce.setOnClickListener {
if (FunctionBuildConfig.overTakeSpeed <= 3) {
ToastUtils.showShort("阈值最小可为3 m/s")
// ToastUtils.showShort("阈值最小可为3 m/s")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_detouring_speed_min_value)
} else {
FunctionBuildConfig.overTakeSpeed -= 0.5f
tvOverTakeLimit.text = "${FunctionBuildConfig.overTakeSpeed} m/s"
@@ -686,7 +692,8 @@ internal class SOPSettingView @JvmOverloads constructor(
}
ivSpeedOverTakeAdd.setOnClickListener {
if (FunctionBuildConfig.overTakeSpeed >= 12.5) {
ToastUtils.showShort("阈值最大可为12.5 m/s")
// ToastUtils.showShort("阈值最大可为12.5 m/s")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_over_take_speed_max_value)
} else {
FunctionBuildConfig.overTakeSpeed += 0.5f
tvOverTakeLimit.text = "${FunctionBuildConfig.overTakeSpeed} m/s"
@@ -697,10 +704,12 @@ internal class SOPSettingView @JvmOverloads constructor(
val isSuccess =
CallerAutoPilotControlManager.sendOvertakeMaxSpeed(FunctionBuildConfig.overTakeSpeed.toDouble())
if (isSuccess == true) {
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置成功")
// ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_sop_detouring_speed_success)
hmiAction("SOP 超车目标障碍物速度阈值设置", "成功")
} else {
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置失败")
// ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_sop_detouring_speed_fail)
hmiAction("SOP 超车目标障碍物速度阈值设置", "失败")
}
clickEventAnalytics("超车速度阈值",true)
@@ -793,19 +802,22 @@ internal class SOPSettingView @JvmOverloads constructor(
if(!buttonView.isPressed) return@setOnCheckedChangeListener
if (isChecked) {
if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()) {
ToastUtils.showLong("请先结束当前任务")
// ToastUtils.showLong("请先结束当前任务")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_current_task)
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
if (CallerHmiManager.isTaxiUnmanedDriverTakingOrders()) {
ToastUtils.showLong("请先结束接单状态")
// ToastUtils.showLong("请先结束接单状态")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_receive_order_state)
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(true)
} else {
if (CallerHmiManager.isTaxiUnmanedDriverLineRoutingPerformTask()) {
ToastUtils.showLong("请先结束当前任务")
// ToastUtils.showLong("请先结束当前任务")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_please_stop_current_task)
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
@@ -929,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)
@@ -938,22 +951,26 @@ internal class SOPSettingView @JvmOverloads constructor(
if (tag == 0) {
//断开魔方连接
if (!mf.isConnected()) {
Toast.makeText(context, "尚未建立连接", Toast.LENGTH_SHORT).show()
// Toast.makeText(context, "尚未建立连接", Toast.LENGTH_SHORT).show()
Toast.makeText(context, R.string.module_core_mofang_disconnect, Toast.LENGTH_SHORT).show()
return@setOnClickCallback
}
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在断开魔方连接, 请稍候...")
// mfStatusLayout.setLoadingViewText("正在断开魔方连接, 请稍候...")
mfStatusLayout.setLoadingViewText(StringUtils.getString(R.string.module_core_disconnecting_mofang))
mf.disconnect()
}
if (tag == 1) {
//建立魔方连接
if (mf.isConnected()) {
Toast.makeText(context, "已连接,不要重复连接", Toast.LENGTH_SHORT).show()
// Toast.makeText(context, "已连接,不要重复连接", Toast.LENGTH_SHORT).show()
Toast.makeText(context, R.string.module_core_mofang_connected, Toast.LENGTH_SHORT).show()
return@setOnClickCallback
}
mf.connect()
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在连接魔方, 请稍候")
// mfStatusLayout.setLoadingViewText("正在连接魔方, 请稍候")
mfStatusLayout.setLoadingViewText(StringUtils.getString(R.string.module_core_connecting_mofang))
}
}
}
@@ -1047,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
}
@@ -1056,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

@@ -11,6 +11,7 @@ import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.enums.SidePattern
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.notification.WarningFloat
import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator
import com.mogo.eagle.core.function.hmi.ui.setting.SopView.Companion.sopView
@@ -117,7 +118,8 @@ class ToolsView private constructor() {
toolsView?.showAdUpgradeStatus(ipcUpgradeStateInfo)
ipcUpgradeStateInfo.status.let {
if (AdUpgradeStateHelper.isUpgradeSuccess(it)) {
ToastUtils.showLong("升级成功")
// ToastUtils.showLong("升级成功")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ipc_upgrade_success)
AdUpgradeStateHelper.setConfirmUpgrade(false)
}
}

View File

@@ -59,7 +59,8 @@ class AdUpgradeDialog(context: Context, images: List<String>, padSn: String, rel
//确认升级
CallerDevaToolsManager.upgradeConfirm(images, padSn, releaseId)
AdUpgradeStateHelper.setConfirmUpgrade(true)
ToastUtils.showLong("最新版本下载中...")
// ToastUtils.showLong("最新版本下载中...")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ipc_upgrade_dow)
dismiss()
}
upgradeCancel?.setOnClickListener {

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
@@ -82,7 +83,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
when {
speed > 60 -> {
// 设置失败键盘不消失,让用户直接修改
ToastUtils.showShort("超过最大限速值60设置失败")
// ToastUtils.showShort("超过最大限速值60设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_beyond_max_value)
}
else -> {
keyBoardUtil?.hideKeyboard()
@@ -93,10 +95,12 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
when {
isSuccess -> {
etInputSpeed.setText(speedLimit.toString())
ToastUtils.showShort("车速设置成功,立即生效")
// ToastUtils.showShort("车速设置成功,立即生效")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_success)
}
else -> {
ToastUtils.showShort("设置车速失败,请启动域控制器")
// ToastUtils.showShort("设置车速失败,请启动域控制器")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_fail)
}
}
}
@@ -113,11 +117,13 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
speedLimit = inputContent.toInt()
if(speedLimit>60){
speedLimit = 60
ToastUtils.showShort("最大限速60")
// ToastUtils.showShort("最大限速60")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_max_value)
}
}
}catch (t: Exception){
ToastUtils.showShort("最大限速60")
// ToastUtils.showShort("最大限速60")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_max_value)
speedLimit = 60
}
@@ -175,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{
@@ -200,7 +207,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
svLayout.fullScroll(View.FOCUS_DOWN)
}
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
ToastUtils.showShort("设置车速失败,请启动域控制器")
// ToastUtils.showShort("设置车速失败,请启动域控制器")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_fail)
keyBoardUtil?.hideKeyboard()
return@setOnTouchListener true
} else {
@@ -216,7 +224,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
speedLimit = 0
etInputSpeed.setText(speedLimit.toString())
} else{
ToastUtils.showShort("车速不能再减了")
// ToastUtils.showShort("车速不能再减了")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_not_minus)
}
try{
etInputSpeed.setSelection(speedLimit.toString().length)
@@ -231,7 +240,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
speedLimit = 60
etInputSpeed.setText(speedLimit.toString())
} else{
ToastUtils.showShort("车速不能再加了")
// ToastUtils.showShort("车速不能再加了")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_not_add)
}
try{
etInputSpeed.setSelection(speedLimit.toString().length)
@@ -242,7 +252,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
tvSureModify.setOnClickListener {
if(speedLimit>60){
// 设置失败键盘不消失,让用户直接修改
ToastUtils.showShort("超过最大限速值60设置失败")
// ToastUtils.showShort("超过最大限速值60设置失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_speed_beyond_max_value)
return@setOnClickListener
}
val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speedLimit)
@@ -250,10 +261,12 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
isSuccess -> {
//速度显示
etInputSpeed.setText(speedLimit.toString())
ToastUtils.showShort("车速设置成功,立即生效")
// ToastUtils.showShort("车速设置成功,立即生效")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_success)
}
else -> {
ToastUtils.showShort("设置车速失败,请启动域控制器")
// ToastUtils.showShort("设置车速失败,请启动域控制器")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_set_auto_pilot_speed_fail)
}
}
try {
@@ -267,7 +280,8 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
if (CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|| CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
) {
ToastUtils.showShort("请稍后退出")
// ToastUtils.showShort("请稍后退出")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_please_out_later)
return@onClick
}
EventBus.getDefault().post(EventLogout(EventLogout.LOGOUT_TYPE))

View File

@@ -76,9 +76,11 @@ class ModifyBindingCarDialog(context: Context) : BaseFloatDialog(context, TAG),
private fun modifyBindingCar() {
CallerDevaToolsManager.modifyCarInfo {
if (it.code == 200) {
TipToast.shortTip("修改绑定成功")
// TipToast.shortTip("修改绑定成功")
TipToast.shortTip(R.string.module_core_change_bind_success)
} else {
TipToast.shortTip("修改绑定失败")
// TipToast.shortTip("修改绑定失败")
TipToast.shortTip(R.string.module_core_change_bind_failed)
}
}
dismiss()

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

@@ -45,9 +45,11 @@ class OTAUpgradeDialog(context: Context) :
if(otaVersion == 1){
val result = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY)
if(result){
ToastUtils.showShort("立即升级命令发送成功")
// ToastUtils.showShort("立即升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("立即升级命令发送失败")
// ToastUtils.showShort("立即升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_fail)
}
}else if(otaVersion == 2){
val query = JSONObject()
@@ -60,9 +62,11 @@ class OTAUpgradeDialog(context: Context) :
}else{
val result = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY)
if(result){
ToastUtils.showShort("立即升级命令发送成功")
// ToastUtils.showShort("立即升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("立即升级命令发送失败")
// ToastUtils.showShort("立即升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_fail)
}
val query = JSONObject()
@@ -80,9 +84,11 @@ class OTAUpgradeDialog(context: Context) :
if(otaVersion == 1){
val delayResult = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY)
if(delayResult){
ToastUtils.showShort("稍后升级命令发送成功")
// ToastUtils.showShort("稍后升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_later_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("稍后升级命令发送失败")
// ToastUtils.showShort("稍后升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_later_send_ipc_upgrade_cmd_fail)
}
}else if(otaVersion == 2){
//不允许OTA升级
@@ -96,9 +102,11 @@ class OTAUpgradeDialog(context: Context) :
}else{
val delayResult = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY)
if(delayResult){
ToastUtils.showShort("稍后升级命令发送成功")
// ToastUtils.showShort("稍后升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_later_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("稍后升级命令发送失败")
// ToastUtils.showShort("稍后升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_later_send_ipc_upgrade_cmd_fail)
}
//不允许OTA升级
@@ -121,9 +129,11 @@ class OTAUpgradeDialog(context: Context) :
if(otaVersion == 1){
val result = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY)
if(result){
ToastUtils.showShort("立即升级命令发送成功")
// ToastUtils.showShort("立即升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("立即升级命令发送失败")
// ToastUtils.showShort("立即升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_fail)
}
}else if(otaVersion == 2){
val query = JSONObject()
@@ -136,9 +146,11 @@ class OTAUpgradeDialog(context: Context) :
}else{
val result = CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY)
if(result){
ToastUtils.showShort("立即升级命令发送成功")
// ToastUtils.showShort("立即升级命令发送成功")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_success)
}else{
ToastUtils.showShort("立即升级命令发送失败")
// ToastUtils.showShort("立即升级命令发送失败")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_send_ipc_upgrade_cmd_fail)
}
val query = JSONObject()

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

@@ -79,9 +79,11 @@ class ToBindingCarDialog(context: Context) : BaseFloatDialog(context, TAG), Life
private fun toBindingCar() {
CallerDevaToolsManager.modifyCarInfo {
if (it.code == 200) {
TipToast.shortTip("绑定成功")
// TipToast.shortTip("绑定成功")
TipToast.shortTip(R.string.module_core_bind_success)
} else {
TipToast.shortTip("绑定失败")
// TipToast.shortTip("绑定失败")
TipToast.shortTip(R.string.module_core_bind_failed)
}
}
dismiss()

View File

@@ -70,7 +70,8 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context,TAG), Lifecyc
confirmTv?.onClick {
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
// ToastUtils.showShort("正在下载最新版本,请稍候再试...")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_downloading_new_version)
return@onClick
}
downloadApp()
@@ -83,7 +84,8 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context,TAG), Lifecyc
confirmForceTv?.onClick {
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
// ToastUtils.showShort("正在下载最新版本,请稍候再试...")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_downloading_new_version)
return@onClick
}
downloadApp()
@@ -95,7 +97,8 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context,TAG), Lifecyc
* 去下载
*/
private fun downloadApp() {
ToastUtils.showLong("开始下载APK,稍后可前往downloads文件夹查看,通知栏查看下载进度")
// ToastUtils.showLong("开始下载APK,稍后可前往downloads文件夹查看,通知栏查看下载进度")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_start_download_apk)
tag?.let {
downloadUrl?.let { url ->
window?.decorView?.scope?.launch {

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

@@ -55,7 +55,8 @@ class AutoPilotStatusView constructor(
when (mAutopilotStatus) {
0 -> {// 不可自动驾驶adas与工控机没有链接或工控机异常
CallerLogger.e("$M_HMI$TAG", "不可自动驾驶adas与工控机没有链接或工控机异常请检查")
ToastUtils.showShort("不可自动驾驶adas与工控机没有链接或工控机异常请检查")
// ToastUtils.showShort("不可自动驾驶adas与工控机没有链接或工控机异常请检查")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_start_autopilot)
}
1 -> {// 可自动驾驶,目前处于人工干预状态
CallerHmiListenerManager.invokeCheckAutoPilotBtnListener(true)

View File

@@ -153,7 +153,8 @@ open class BlueToothView: LinearLayout, IMoGoMoFangProvider.OnMoFangStatusListen
val prev = prevTime.get()
val current = SystemClock.elapsedRealtime()
if (prev == 0L || TimeUnit.MILLISECONDS.toSeconds(current - prev) >= 30) {
ToastUtils.showShort("蘑方当前处于低电状态,请及时充电")
// ToastUtils.showShort("蘑方当前处于低电状态,请及时充电")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_mofang_low_power)
prevTime.set(current)
}
ivMoFangStatus?.background = (ContextCompat.getDrawable(context, R.drawable.icon_mofang_low_power))

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
@@ -205,30 +206,36 @@ class CheckSystemView @JvmOverloads constructor(
*/
private fun powerOff() {
if (!connectStatus) {
ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
// ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_shutdown_ipc)
return
}
if(AppConfigInfo.dockerVersion.isEmpty()){
ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
// ToastUtils.showShort("尚未连接工控机,无法下发一键停服命令")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_shutdown_ipc)
return
}
if(ParseVersionUtils.parseVersion(true, AppConfigInfo.dockerVersion)<40100){
ToastUtils.showShort("此域控版本不支持一键停服功能最低支持版本为4.1.0")
// ToastUtils.showShort("此域控版本不支持一键停服功能最低支持版本为4.1.0")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_version_nonsupport_shutdown_ipc)
return
}
if(CallerAutoPilotStatusListenerManager.getState() == 2){
//当前处于自动驾驶状态不可进行重启Toast提示
ToastUtils.showShort("请先退出自动驾驶状态")
// ToastUtils.showShort("请先退出自动驾驶状态")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_please_exit_autopilot_state)
return
}
if (isExecutingPowerOff) {
//一键停服命令下发执行中
ToastUtils.showShort("一键停服命令下发中,请勿重复点击")
// ToastUtils.showShort("一键停服命令下发中,请勿重复点击")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_sending_shutdown_ipc)
return
}
if (isPowerOffCountDown) {
//系统停服中
ToastUtils.showShort("系统停服中,请勿重复点击")
// ToastUtils.showShort("系统停服中,请勿重复点击")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_shutdowning_ipc)
return
}
//将是否正在下发一键停服命令标签改为true
@@ -247,7 +254,8 @@ class CheckSystemView @JvmOverloads constructor(
*/
private fun showRebootDialog() {
if (!connectStatus) {
ToastUtils.showShort("尚未连接工控机,无法重启系统")
// ToastUtils.showShort("尚未连接工控机,无法重启系统")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_not_sent_reboot_ipc)
return
}
//dialog
@@ -257,12 +265,14 @@ class CheckSystemView @JvmOverloads constructor(
override fun confirm() {
if (CallerAutoPilotStatusListenerManager.getState() == 2) {
//当前处于自动驾驶状态不可进行重启Toast提示
ToastUtils.showShort("请先退出自动驾驶状态")
// ToastUtils.showShort("请先退出自动驾驶状态")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_please_exit_autopilot_state)
} else {
//确认重启
CallerLogger.d("$M_HMI$TAG", "reboot confirm")
CallerAutoPilotControlManager.sendIpcReboot()
ToastUtils.showLong("重启命令已发送")
// ToastUtils.showLong("重启命令已发送")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_send_reboot_success)
}
}
@@ -417,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

@@ -139,10 +139,12 @@ class DriverMonitorView :
carLiveCallBack
)
} else {
ToastUtils.showShort("正在直播中")
// ToastUtils.showShort("正在直播中")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_live_streaming)
}
} else {
ToastUtils.showShort("当前车内没有直播源")
// ToastUtils.showShort("当前车内没有直播源")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_car_not_live_device)
//为空又怎么撸
CallerLogger.d(
"${SceneConstant.M_HMI}$TAG",

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
@@ -112,18 +113,21 @@ class ParallelDriveView @JvmOverloads constructor(
APP_REQUESTING -> {
cancelParaDrive()
HmiActionLog.hmiAction(TAG,"Click-请求已取消")
ToastUtils.showShort("请求已取消!")
// ToastUtils.showShort("请求已取消!")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_cancel_para_drive)
checkAvailableAndUpdateUI()
}
AD_REQUESTING -> {
HmiActionLog.hmiAction(TAG,"Click-自动驾驶正在请求平行驾驶")
ToastUtils.showShort("自动驾驶正在请求平行驾驶")
// ToastUtils.showShort("自动驾驶正在请求平行驾驶")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_request_para_drive)
}
UNAVAILABLE -> {
HmiActionLog.hmiAction(TAG,"Click-请P档驻车并松开油门刹车后请求")
ToastUtils.showShort("请P档驻车并松开油门刹车后请求")
// ToastUtils.showShort("请P档驻车并松开油门刹车后请求")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_para_drive_not_conditions)
}
}
}
@@ -204,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" -> {// 异常请人工驾驶
@@ -385,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()
)
@@ -398,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

@@ -46,14 +46,16 @@ class RomaPassengerView @JvmOverloads constructor(
a.recycle()
setOnClickListener {
if (ClickUtils.isClickTooFrequent(this,2500)) {
ToastUtils.showShort("不要频繁点击哦~")
// ToastUtils.showShort("不要频繁点击哦~")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_dot_often_click)
return@setOnClickListener
}
if(!click){
return@setOnClickListener
}
if(!MogoStatusManager.getInstance().isSocketOnLine){
ToastUtils.showShort("长链状态异常,请检查链接后开启漫游")
// ToastUtils.showShort("长链状态异常,请检查链接后开启漫游")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_long_connection_state_error)
return@setOnClickListener
}
click = false

View File

@@ -71,7 +71,8 @@ class SystemVersionView @JvmOverloads constructor(
hmiAction("$M_HMI$TAG", "pad version view clicked")
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
// ToastUtils.showShort("正在下载最新版本,请稍候再试...")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_downloading_new_version)
return@setOnClickListener
}
CallerDevaToolsManager.queryAppUpgrade()
@@ -106,14 +107,24 @@ class SystemVersionView @JvmOverloads constructor(
currentProgress
).isEmpty()
) {
ToastUtils.showShort("下载已完成")
// 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
)
)
)
}
}
@@ -124,15 +135,18 @@ class SystemVersionView @JvmOverloads constructor(
}
AdUpgradeStateHelper.isUpgrading(it.status) -> {
//工控机状态为“升级中”
ToastUtils.showShort("新版本升级中预计5分钟升级完成")
// ToastUtils.showShort("新版本升级中预计5分钟升级完成")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_upgrade_now)
}
AdUpgradeStateHelper.isUpgradeFailed(it.status) -> {
//如果升级失败则Toast提示升级失败请联系运维人员
ToastUtils.showShort("升级失败,请联系运维人员")
// ToastUtils.showShort("升级失败,请联系运维人员")
ToastUtils.showShort(R.string.module_mogo_core_function_hmi_ipc_upgrade_fail)
}
AdUpgradeStateHelper.isUpgradeSuccess(it.status) -> {
//升级成功
ToastUtils.showLong("已是最新版本")
// ToastUtils.showLong("已是最新版本")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ipc_last_version)
}
}
@@ -342,7 +356,8 @@ class SystemVersionView @JvmOverloads constructor(
// ivAdVersion?.setBackgroundResource(R.drawable.version_upgradeable_background)
AdUpgradeStateHelper.setUpgradeableStatus(true)
} else {
ToastUtils.showLong("已是最新版本")
// ToastUtils.showLong("已是最新版本")
ToastUtils.showLong(R.string.module_mogo_core_function_hmi_ipc_last_version)
ivAdStatus?.setImageResource(R.drawable.icon_latest_version)
adCircularProgressView?.visibility = View.GONE
// ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)

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

@@ -0,0 +1,305 @@
<resources>
<string name="motice_push_check">View</string>
<string name="tab_car_info">My Vehicle</string>
<string name="tab_tool_kit">More</string>
<string name="tab_car_login_info">Login Info</string>
<string name="tab_car_exit">Exit</string>
<string name="tab_car_no">Vehicle Binding</string>
<string name="tab_version_info">Version Info</string>
<string name="tab_sn">Device SN</string>
<string name="tab_version_pad_info">PAD:</string>
<string name="tab_version_ad_info">AD:</string>
<string name="tab_version_hdmap_info">HD MAP:</string>
<string name="tab_version_admap_info">AD MAP:</string>
<string name="tab_version_grid_map_info">Grid Map:</string>
<string name="tab_version_slam_map_info">Islam Map:</string>
<string name="tab_version_update">Check Update</string>
<string name="tab_login_norphone"> Guest (Not Logged In)</string>
<string name="tab_login_gophone">Login</string>
<string name="log_min">Minimize</string>
<string name="log_info">Log</string>
<string name="log_info_edt_hint">Enter keyword to filter</string>
<string name="log_info_verbose">Verbose</string>
<string name="log_info_debug">Debug</string>
<string name="log_info_info">Info</string>
<string name="log_info_warn">Warn</string>
<string name="log_info_error">Error</string>
<!--日志-->
<string name="log_btn_clean">Clear Log</string>
<string name="log_btn_export">Export</string>
<string name="log_btn_back_top">Back to Top</string>
<string name="log_btn_to_bottom">Scroll to Bottom</string>
<string name="log_text_loading">Loading logs...</string>
<string name="check_vehicle_detection">Vehicle Detection</string>
<string name="debug_panel">Debug Panel</string>
<string name="debug_panel_fb">Record Setting</string>
<string name="debug_sop">Operation Panel</string>
<string name="debug_bad_case">Record</string>
<string name="take_over_record">Takeover Record</string>
<string name="wait_upload_task">Local Tasks</string>
<string name="debug_bad_case_manager">Record Manager</string>
<string name="debug_bad_case_report">Report</string>
<string name="check_vehicle_speed_setting">Speed Setting</string>
<string name="bus_operation_title">Account Info</string>
<string name="check_system_operation">System Operation</string>
<string name="check_system_shut_down">One-click Shutdown</string>
<string name="check_system_reboot">Reboot System</string>
<string name="check_system_reboot_title">Reboot Notice</string>
<string name="check_system_reboot_content">Reboot autonomous driving system?</string>
<string name="check_system_reboot_tips">Ensure exited autonomous driving and surroundings are safe</string>
<!--系统版本-->
<string name="check_system_version">System Version</string>
<string name="current_system_version">Current Version</string>
<string name="application_upgrade">App Upgrade</string>
<string name="application_upgrade_confirm">Upgrade app to latest version?</string>
<string name="application_upgrade_tips">Note! Exit autonomous driving before upgrade. Allowed during manual driving. Do not power off during upgrade.</string>
<string name="confirm">Confirm</string>
<string name="cancel">Cancel</string>
<string name="upgrade_later">Upgrade Later</string>
<string name="ipc_report_time">Time:</string>
<string name="ipc_report_type">Type:</string>
<string name="ipc_report_msg">Reason:</string>
<string name="ipc_report_action">Suggested Action:</string>
<!--绑定车机-->
<string name="bindingcar_title">Bind Vehicle</string>
<string name="modify_binding_car">Modify vehicle binding?</string>
<string name="to_binding_car">Bind vehicle?</string>
<string name="status_bar_tag">Mogo Nebula</string>
<string name="dispatch_dialog_title">You Have a New Task</string>
<string name="dispatch_dialog_start_loc">Start:</string>
<string name="dispatch_dialog_end_loc">End:</string>
<string name="dispatch_dialog_task_time">Task Time:</string>
<string name="dispatch_dialog_task_info">Task Detail:</string>
<string name="dispatch_dialog_flight_info">Flight Info:</string>
<string name="dispatch_dialog_affirm">Accept Task</string>
<string name="dispatch_cars_remind_title">Dispatch Confirm</string>
<string name="dispatch_dialog_restart_title">Notice</string>
<string name="dispatch_dialog_restart_content">Vehicle exited autonomous driving, click below to resume</string>
<string name="dispatch_dialog_restart_enter">Enter Autonomous Driving</string>
<string name="dispatch_cars_remind_content">Vehicle will enter autonomous driving and head to:</string>
<string name="dispatch_cars_affirm">Confirm</string>
<string name="dispatch_cars_cancel">Cancel</string>
<string name="offline_map_cache_tip">Offline Map Cache Notice</string>
<string name="cache_offline_map_content">Cache latest offline map?</string>
<string name="offline_downloading">Offline Map Downloading</string>
<string name="offline_download_success">Offline Map Downloaded</string>
<string name="offline_download_failure">Offline Map Download Failed</string>
<string name="offline_had_downloaded">Already Latest Version</string>
<string name="offline_update_tip">Check network connection</string>
<string name="location_try_again">Check location service</string>
<string name="ok_tip">OK</string>
<string name="retry">Retry</string>
<string name="hint_exit_app_again">Press again to exit</string>
<!--消息盒子V2X消息Title-->
<string name="v2x_title_content">%s-%s</string>
<string name="traffic_light_status">Traffic Light Status</string>
<!--红绿灯数据来源-->
<string name="light_source_ai_cloud">Cloud</string>
<string name="light_source_driver_ai_cloud">Cloud</string>
<string name="light_source_perception">Vehicle</string>
<string name="light_source_driver_perception">Vehicle</string>
<string name="light_source_perception_v2i">Fusion V2I</string>
<string name="light_source_perception_v2n">Fusion V2N</string>
<string name="light_source_obu">OBU</string>
<string name="light_source_driver_obu">OBU</string>
<string name="parallel_drive">Remote Driving</string>
<string name="parallel_drive_requesting">Requesting...</string>
<string name="parallel_drive_synchronizing">Syncing...</string>
<string name="parallel_drive_failure">Request Failed</string>
<string name="parallel_drive_exception">Exception</string>
<!--清扫车模式切换-->
<string name="sweeper_mode_change_title">Sweeper Mode Switch Notice</string>
<string name="sweeper_mode_change_tips">Switch sweeper mode? The app will restart.</string>
<string name="pull_time_title">Taxi Unmanned Task Fetch Interval</string>
<!--融合红绿灯-->
<string name="fusion_traffic_light_state">Fusion Traffic Light Status</string>
<string name="fusion_traffic_light_scale">Fusion Traffic Light Scale</string>
<string name="fusion_traffic_light_pointer">Fusion Traffic Light Pointer</string>
<!--行程总结-->
<string name="summary_close">Trip Summary Close</string>
<string name="summary_zhi">Trip Summary Zhi Icon</string>
<string name="summary_intersection_services">Holographic Intersection Service</string>
<string name="summary_light_services">Traffic Light Service</string>
<string name="summary_info_tip">Road Info Reminder</string>
<string name="summary_vehicle_tip">Vehicle Behavior Reminder</string>
<string name="summary_vulnerable_tip">Vulnerable Participant Reminder</string>
<string name="summary_service_unit">times</string>
<string name="summary_efficiency_unit">%</string>
<string name="summary_danger_title">Eliminate Safety Risks</string>
<string name="summary_efficiency_title">Traffic Efficiency Improvement</string>
<string name="summary_danger_tip">Even the smallest chance of traffic accidents brings unbearable consequences.</string>
<string name="summary_powered">Powered by Mogo Traffic Model™</string>
<!--自动探索-->
<string name="exploration_scan">Auto Exploration Scan</string>
<string name="exploration_vehicle_lane">Auto Exploration Lane</string>
<string name="exploration_title">Scanning Road Ahead</string>
<string name="exploration_close">Auto Exploration Close</string>
<string name="exploration_loading">Auto Exploration Loading</string>
<string name="road_cross_live_tip">Mogo is protecting your journey in real time!</string>
<string name="hmi_take_over">Manual Takeover</string>
<string name="hmi_over_take">Overtake</string>
<string name="hmi_line_to_left">Change Lane Left</string>
<string name="hmi_line_to_right">Change Lane Right</string>
<string name="hmi_pull_over">Pull Over</string>
<string name="hmi_emergency_stop">Emergency Stop</string>
<string name="hmi_take_over_request">Takeover Request</string>
<string name="hmi_take_over_recover">Resume Auto Decision</string>
<string name="hmi_open_lane_change">Obstacle Mode</string>
<string name="hmi_close_lane_change">Obstacle Mode</string>
<string name="hmi_open_aeb">Brake Mode</string>
<string name="hmi_close_aeb">Brake Mode</string>
<string name="hmi_open_stop_yield">Stop</string>
<string name="hmi_close_stop_yield">Stop</string>
<string name="hmi_open_map_speed">Speed Limit Mode</string>
<string name="hmi_close_map_speed">Speed Limit Mode</string>
<string name="hmi_open_ramp">Roundabout Mode</string>
<string name="hmi_close_ramp">Roundabout Mode</string>
<string name="hmi_main_driver">Driver</string>
<string name="hmi_co_driver">Co-driver</string>
<string name="hmi_rear_row">Rear Seat</string>
<!--消息盒子-->
<string name="msg_box_title_notice">Notice</string>
<string name="msg_box_title_fm">FM Info</string>
<string name="msg_box_title_report">System Info</string>
<string name="msg_box_title_bad_case">Record</string>
<string name="bad_case_icon">Record Icon</string>
<string name="bad_case_record_tip">Record Tip</string>
<string name="bad_case_check">View</string>
<string name="report_icon">System Info Icon</string>
<string name="report_retract">Collapse</string>
<string name="report_open">Expand</string>
<string name="fm_icon">FM Icon</string>
<string name="fm_retract">Collapse</string>
<string name="fm_open">Expand</string>
<string name="operation_icon">Operation Icon</string>
<string name="operation_title">Operation Platform</string>
<string name="operation_return_icon">Return Notice Icon</string>
<string name="operation_return_title">Return Notice</string>
<string name="operation_stop_icon">Pull Over Icon</string>
<string name="operation_stop_title">Pull Over</string>
<string name="operation_door_icon">Platform Door Fail Icon</string>
<string name="operation_door_title">Operation Platform</string>
<string name="notice_icon">Official Notice Icon</string>
<string name="notice_title">Official Notice</string>
<string name="notice_check">View</string>
<string name="summary_icon">Summary Icon</string>
<string name="summary_title">Mogo Assistant</string>
<string name="ssm_icon">SSM Icon</string>
<string name="autopilot_icon">Domain Controller State Icon</string>
<string name="fsm_icon">FSM Icon</string>
<string name="v2x_icon">V2X Icon</string>
<string name="nde_icon">NDE Icon</string>
<string name="ota_icon">OTA Icon</string>
<string name="nde_road_icon">NDE Lane Icon</string>
<string name="nde_road_recommend">Recommend</string>
<string name="nde_road_slow">Slow</string>
<string name="fault_time_reduce">Fault Time Reduced</string>
<string name="fault_time_add">Fault Time Increased</string>
<string name="msg_box_toast_icon">Message Toast Icon</string>
<string name="traffic_light_source">Traffic Light Source</string>
<string name="report_success">Reported</string>
<string name="operate_v2x_connect_tip">Wait for V2X connection</string>
<string name="wifi_connect_icon">WiFi Icon</string>
<string name="ipc_connect_icon">Domain Controller Icon</string>
<string name="ssm_connect_icon">SSM Icon</string>
<string name="cold_start_icon">Cold Start Icon</string>
<string name="wifi_connect_loading">Waiting for Vehicle WiFi…</string>
<string name="wifi_connect_success">Connected to Vehicle WiFi</string>
<string name="ipc_connect_wait">Waiting for Domain Controller</string>
<string name="ipc_connect_loading">Connecting…</string>
<string name="ipc_connect_success">Connected to Controller</string>
<string name="cold_start_in_progress_title">System Starting…</string>
<string name="cold_start_success_title">System Started</string>
<string name="cold_start_fail_title">System Start Failed</string>
<string name="ssm_connect_wait">Waiting for SSM</string>
<string name="ssm_connect_loading">Waiting for SSM Info</string>
<string name="ssm_connect_success">SSM Communication OK</string>
<string name="ssm_connect_fail">Timeout, restart vehicle and report</string>
<string name="cold_start_wait">Waiting</string>
<string name="cold_start_success_content">System started, entering home</string>
<string name="cold_start_fail_content">System error, try restart</string>
<string name="cold_start_title_wifi_wait">Waiting Vehicle Power</string>
<string name="cold_start_title_tel_wait">Waiting Controller</string>
<string name="cold_start_title_tel_exception">Controller Connection Exception</string>
<string name="cold_start_title_ssm_wait">Waiting SSM</string>
<string name="cold_start_title_ssm_exception">SSM Communication Exception</string>
<string name="cold_start_title_sys_wait">Waiting System Start</string>
<string name="cold_start_title_sys_success">System Started</string>
<string name="cold_start_title_sys_exception">System Exception</string>
<string name="cold_start_list_mask">Cold Start Mask</string>
<string name="cold_start_soft_icon">Cold Start Software Icon</string>
<string name="cold_start_fault_icon">Cold Start HW Fault Icon</string>
<string name="cold_start_now">Use Now</string>
<string name="cold_start_now_tip">Skipping may disable autonomous mode</string>
<string name="cold_start_process">Cold Start Progress</string>
<!--OTA升级-->
<string name="ota_upgrade_title">Vehicle Deployment</string>
<string name="ota_upgrade_tip_one">Received deployment task;</string>
<string name="ota_upgrade_tip_two">Ensure safe position and engine on;</string>
<string name="ota_upgrade_tip_three">No operations during upgrade;</string>
<string name="ota_upgrade_now">Upgrade Now</string>
<string name="ota_upgrade_later">Upgrade Later</string>
<string name="ota_download_title">Downloading</string>
<string name="ota_result_image">OTA Result Image</string>
<string name="ota_result_success">Deployment Download Finished</string>
<string name="ota_result_fail">Deployment Failed</string>
<string name="ota_result_timeout">Status Query Timeout</string>
<string name="ota_result_success_tip">System stopping gracefully, operate restart after %s</string>
<string name="ota_result_fail_tip">Contact Admin</string>
<string name="ota_result_close">Close</string>
<string name="ota_power_off_finish_title">Graceful Stop Finished</string>
<string name="ota_power_off_finish_tip">Restart Vehicle</string>
<string name="fsm_demo_mode_error">FSM Demo Error</string>
<string name="hard_disk_connected">Disk Connected</string>
<string name="hard_disk_unplug">Disk Unplug Icon</string>
<string name="hard_disk_data_date">Data Date</string>
<string name="disk_copy_date_select">Date Selector Icon</string>
<string name="select_copy_date">Select Date</string>
<string name="disk_copy_terminate">Terminate Copy Icon</string>
<string name="disk_copy_terminate_title">Terminate Copy</string>
<string name="disk_copy_terminate_content">Terminate copy and eject disk</string>
<string name="disk_copy_terminate_confirm">Confirm</string>
<string name="disk_copy_terminate_cancel">Cancel</string>
<string name="disk_copy_exception_icon">Copy Exception Icon</string>
<string name="disk_copy_exception_close">Close</string>
<string name="copy_bag_success_close">Close</string>
<string name="disk_free_space">%dG Available</string>
<string name="disk_used_percent">%d%%</string>
<string name="disk_copy_progress">Copying…%d%%</string>
<string name="copy_bag_start">Start Copy</string>
<string name="copy_bag_success">Copy Success</string>
<string name="disk_not_enough_space">Not Enough Space</string>
<string name="date_cannot_copy">Selected Date Unavailable</string>
<string name="common_traffic_light_status">Traffic Light Background</string>
</resources>

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"

Some files were not shown because too many files have changed in this diff Show More