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

This commit is contained in:
xinfengkun
2025-11-21 10:34:56 +08:00
parent 038d2d6bb6
commit a284fd24da
35 changed files with 237 additions and 87 deletions

View File

@@ -86,13 +86,14 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/dp_30"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/sp_36"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -162,6 +162,7 @@
android:textStyle="bold" />
</LinearLayout>
<!-- android:text="取消"-->
<Button
android:id="@+id/btnCancel"
android:layout_width="@dimen/dp_160"
@@ -169,7 +170,7 @@
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_36"
android:background="@drawable/rviz_common_select_dialog_default_config_button_bg"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="@color/white"
android:textSize="@dimen/sp_32"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -119,6 +119,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_password" />
<!-- android:text="取消"-->
<Button
android:id="@+id/btnCancel"
android:layout_width="@dimen/dp_160"
@@ -126,7 +127,7 @@
android:layout_marginStart="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/rviz_fmd_bg_fmd_dialog_btn"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="@color/rvizFmdColorBlock"
android:textSize="@dimen/sp_32"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -61,6 +61,7 @@ import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartManager
import com.zhjt.mogo_core_function_devatools.driver.video.DriveSeatVideoProviderImpl
import com.mogo.eagle.core.function.api.driver.video.IDriveSeatVideoProvider
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.zhjt.mogo_core_function_devatools.cloudcontrol.CloudControlManager
import com.zhjt.mogo_core_function_devatools.diskcopy.DiskCopyManager
import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
@@ -155,7 +156,8 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
if (state == Fsm2024.State.SAFETY_STOP) {
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
AppStateManager.currentActivity()?.also {
AIAssist.getInstance(it).speakTTSVoice("识别故障即将停车,请注意观察,小心接管")
// AIAssist.getInstance(it).speakTTSVoice("识别故障即将停车,请注意观察,小心接管")
AIAssist.getInstance(it).speakTTSVoice(StringUtils.getString(R.string.module_core_fault_stop_takeover))
}
CallerHmiManager.toggleSafetyStopCarWarning(true)
@@ -165,7 +167,8 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
CallerHmiManager.toggleSafetyStopCarWarning(false)
AppStateManager.currentActivity()?.also {
AIAssist.getInstance(it).speakTTSVoice("请接管恢复车辆状态")
// AIAssist.getInstance(it).speakTTSVoice("请接管恢复车辆状态")
AIAssist.getInstance(it).speakTTSVoice(StringUtils.getString(R.string.module_core_takeover_restore_vehicle))
}
}
}

View File

@@ -8,6 +8,7 @@ import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.coldstart.ColdStartNodeInfo
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.zhjt.mogo_core_function_devatools.R
class ColdStartNodeAdapter : RecyclerView.Adapter<ColdStartNodeAdapter.NodeInfoHolder>(){
@@ -30,7 +31,8 @@ class ColdStartNodeAdapter : RecyclerView.Adapter<ColdStartNodeAdapter.NodeInfoH
nodeList?.let {
val node = it[position]
holder.tvNodeStatus.text = "${node.nodeName} ${node.status}"
if("启动成功" == node.status || "启动中…" == node.status){
// if("启动成功" == node.status || "启动中…" == node.status){
if (StringUtils.getString(R.string.module_core_startup_successful) == node.status || StringUtils.getString(R.string.module_core_starting) == node.status) {
holder.tvNodeStatus.setTextColor(Color.parseColor("#B2FFFFFF"))
}else{
holder.tvNodeStatus.setTextColor(Color.parseColor("#FF4E41"))

View File

@@ -20,12 +20,14 @@ import com.mogo.eagle.core.network.apiCall
import com.mogo.eagle.core.network.request
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.AppStateManager
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.tencent.liteav.basic.log.TXCLog
import com.tencent.rtmp.ITXLivePlayListener
import com.tencent.rtmp.TXLiveConstants
import com.tencent.rtmp.TXLivePlayConfig
import com.tencent.rtmp.TXLivePlayer
import com.tencent.rtmp.ui.TXCloudVideoView
import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.driver.video.vo.VideoUrlData
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -98,7 +100,8 @@ class DriveSeatVideoProviderImpl : IDriveSeatVideoProvider {
}
onError {
Log.e(TAG, "-- isVideoLiveUsable -- receive 请求失败: { msg: ${it.message}")
onError.invoke("请求失败 , ${it.message}")
// onError.invoke("请求失败 , ${it.message}")
onError.invoke("${StringUtils.getString(R.string.module_core_request_failed)}${it.message}")
}
}
}
@@ -139,7 +142,8 @@ class DriveSeatVideoProviderImpl : IDriveSeatVideoProvider {
Log.d(TAG, "play failed...$event, bundle: $bundle")
stop()
isPlaying.set(false)
playCallback?.invoke(Failed(bundle?.toString() ?: "播放失败"))
// playCallback?.invoke(Failed(bundle?.toString() ?: "播放失败"))
playCallback?.invoke(Failed(bundle?.toString() ?: StringUtils.getString(R.string.module_core_play_failed)))
}
}
}
@@ -173,7 +177,8 @@ class DriveSeatVideoProviderImpl : IDriveSeatVideoProvider {
@OptIn(ExperimentalCoroutinesApi::class)
override fun poller(): Flow<Boolean> = channelFlow {
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
throw AssertionError("此方法不支持司机屏使用")
// throw AssertionError("此方法不支持司机屏使用")
throw AssertionError(StringUtils.getString(R.string.module_core_method_not_support_driver_screen))
}
val ch = chl.get()?.let {
if (it.isClosedForSend || it.isClosedForReceive) {
@@ -217,7 +222,8 @@ class DriveSeatVideoProviderImpl : IDriveSeatVideoProvider {
override fun isVideoPlaying(): Boolean {
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
throw AssertionError("此方法不支持司机屏使用")
// throw AssertionError("此方法不支持司机屏使用")
throw AssertionError(StringUtils.getString(R.string.module_core_method_not_support_driver_screen))
}
return isPlaying.get()
}

View File

@@ -8,7 +8,9 @@ import com.mogo.eagle.core.data.EnvConfig
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhjt.mogo_core_function_devatools.R
object EnvChangeManager {
@@ -48,7 +50,8 @@ object EnvChangeManager {
// else -> "未知"
// }
// }
return "未知"
// return "未知"
return StringUtils.getString(R.string.module_core_unknown)
}
fun getConfigNetMode(): Int {
@@ -74,7 +77,8 @@ object EnvChangeManager {
// else -> "未知"
// }
// }
return "未知"
// return "未知"
return StringUtils.getString(R.string.module_core_unknown)
}
fun changeTo(cityCode: String, netMode: Int) {

View File

@@ -294,7 +294,8 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
linkedLog.record(mapOf("callback" to "onBluetoothKeyboardInputInvalid"))
UiThreadHandler.post {
listeners.values.forEach {
it.onMoFangStatusError("检测到鹰眼未处于前台, 魔方指令暂不能使用, 请将鹰眼切换到前台运行...")
// it.onMoFangStatusError("检测到鹰眼未处于前台, 魔方指令暂不能使用, 请将鹰眼切换到前台运行...")
it.onMoFangStatusError(StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_eagle_eye_not_front_desk_not_use_mofang))
}
}
}

View File

@@ -17,6 +17,7 @@ import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
import com.mogo.eagle.core.function.call.devatools.CallerOTAManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo_core_function_devatools.R
@@ -208,9 +209,11 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener,
Log.i(TAG,"left_time=$leftTime")
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)
}
if(index == 0){
@@ -345,9 +348,11 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener,
Log.i(TAG,"left_time=$leftTime")
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)
}
if(index == 0){
@@ -512,11 +517,14 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener,
// 并toast提示“收到车辆部署任务请在车辆空闲时发起升级”
val reason = if(OTAUpgradeConfig.autopilotStatus){
"处于自驾中"
// "处于自驾中"
StringUtils.getString(R.string.module_core_in_self_driving)
}else if(OTAUpgradeConfig.inOrder){
"处于订单中"
// "处于订单中"
StringUtils.getString(R.string.module_core_in_order)
}else{
"冷启动未完成"
// "冷启动未完成"
StringUtils.getString(R.string.module_core_cold_boot_incomplete)
}
val query = JSONObject()
query.put("cmd","ASK_PAD_UPGRADE_RES")

View File

@@ -10,6 +10,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.report.ReportEntity
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.zhjt.mogo_core_function_devatools.R
/**
@@ -38,7 +39,8 @@ class ReportListAdapter(context: Context) :
data?.let { it ->
val reportEntity = it[position]
reportEntity.let {
holder.tvReportTime.text = "上报时间:${it.time}"
// holder.tvReportTime.text = "上报时间:${it.time}"
holder.tvReportTime.text = "${StringUtils.getString(R.string.module_core_report_time)}${it.time}"
holder.tvReportSrc.text = "src:${it.src}"
holder.tvReportLevel.text = "level:${it.level}"
holder.tvReportMsg.text = "msg:${it.msg}"

View File

@@ -13,8 +13,10 @@ import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.NodeStateInfo
import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStateCode
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus
import com.zhjt.mogo_core_function_devatools.status.flow.IFlow
@@ -36,7 +38,8 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
private fun getDesc(): List<String> {
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
return listOf("未知")
// return listOf("未知")
return listOf(StringUtils.getString(R.string.module_core_unknown))
} else {
val nodeState = CallerAutoPilotControlManager.getNodeStateInfo(AdasConstants.NodeName.FSM2024)?.nodeState ?: AdasConstants.NodeState.NODE_UNKNOWN
return getStateDescByNodeStateInfo(nodeState)
@@ -63,10 +66,14 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
private fun getStateDescByNodeStateInfo(nodeState: AdasConstants.NodeState): List<String> {
return when(nodeState) {
AdasConstants.NodeState.NODE_UNKNOWN -> listOf("未知")
AdasConstants.NodeState.NODE_NOT_EXIST -> listOf("FSM不存在")
AdasConstants.NodeState.NODE_EXIST -> if(fsmStateMsg.get()?.pilotStandbyFlag == true) listOf("状态正常") else fsmStateMsg.get()?.repeatedPilotNotStandbyReasonList ?: listOf("")
else -> listOf("未知")
// AdasConstants.NodeState.NODE_UNKNOWN -> listOf("未知")
AdasConstants.NodeState.NODE_UNKNOWN -> listOf(StringUtils.getString(R.string.module_core_unknown))
// AdasConstants.NodeState.NODE_NOT_EXIST -> listOf("FSM不存在")
AdasConstants.NodeState.NODE_NOT_EXIST -> listOf(StringUtils.getString(R.string.module_core_fsm_not_exist))
// AdasConstants.NodeState.NODE_EXIST -> if(fsmStateMsg.get()?.pilotStandbyFlag == true) listOf("状态正常") else fsmStateMsg.get()?.repeatedPilotNotStandbyReasonList ?: listOf("")
AdasConstants.NodeState.NODE_EXIST -> if(fsmStateMsg.get()?.pilotStandbyFlag == true) listOf(StringUtils.getString(R.string.module_core_normal_state)) else fsmStateMsg.get()?.repeatedPilotNotStandbyReasonList ?: listOf("")
// else -> listOf("未知")
else -> listOf(StringUtils.getString(R.string.module_core_unknown))
}
}
@@ -91,7 +98,8 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
} else {
CallerLogger.d("$M_DEVA$TAG", "工控机断开了....")
fsmStateMsg.set(null)
send(FSMStatus(FSMStateCode.UnKnown, listOf("工控机断开了")))
// send(FSMStatus(FSMStateCode.UnKnown, listOf("工控机断开了")))
send(FSMStatus(FSMStateCode.UnKnown, listOf(StringUtils.getString(R.string.module_core_ipc_disconnected))))
}
}
@@ -121,7 +129,8 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
)
fsmStateMsg.set(fsmState)
if (fsmState.pilotStandbyFlag) {
send(FSMStatus(FSMStateCode.ExistNormal, listOf("状态正常")))
// send(FSMStatus(FSMStateCode.ExistNormal, listOf("状态正常")))
send(FSMStatus(FSMStateCode.ExistNormal, listOf(StringUtils.getString(R.string.module_core_normal_state))))
} else {
send(FSMStatus(FSMStateCode.ExistError, fsmState.repeatedPilotNotStandbyReasonList))
}

View File

@@ -117,7 +117,8 @@ class UpgradeAppNetWorkManager private constructor() {
provider?.recordUpgradeRequestSuccess(response)
doUpgrade(info)
} else {
val error = info.msg?:"请检查升级服务日志"
// val error = info.msg?:"请检查升级服务日志"
val error = info.msg?:StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_check_upgrade_log_normal)
runCatching {
block?.invoke(false, error)
}
@@ -128,7 +129,8 @@ class UpgradeAppNetWorkManager private constructor() {
SharedPrefsMgr.getInstance().putString(SharedPrefsConstants.APP_UPGRADE_CONTENT,
"$t--mac:$macAddress --type:$type --sn:$sn "
)
provider?.recordUpgradeRequestFailed(t.message ?: "更新接口请求失败")
// provider?.recordUpgradeRequestFailed(t.message ?: "更新接口请求失败")
provider?.recordUpgradeRequestFailed(t.message ?: StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_update_api_request_failed))
deleteApkFile()
}
delay(TimeUnit.HOURS.toMillis(1))
@@ -165,7 +167,12 @@ class UpgradeAppNetWorkManager private constructor() {
Log.d("ApkInstaller", "需要走patch升级 -- 4 --:$accept")
if (!accept) {
Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...")
provider.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
// provider.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
provider.recordSourceMd5CheckFailed(
StringUtils.getString(
com.mogo.eagle.core.widget.R.string.module_core_old_md5_server_md5_inconformity,
patchInfo.sourceMd5,
AppUtils.getAppApkMd5()))
} else {
Log.d("ApkInstaller", "需要走patch升级 -- 5 --")
provider.recordSourceMd5CheckSuccess()

View File

@@ -97,7 +97,8 @@ class UpgradeManager : IDownloadListener {
val ret = dir.mkdirs()
if (!ret) {
Logger.w(TAG, "create new apk path failed.")
throw AssertionError("创建目录失败")
// throw AssertionError("创建目录失败")
throw AssertionError(StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_dir_create_failed))
}
}
if (dir != null){
@@ -111,17 +112,21 @@ class UpgradeManager : IDownloadListener {
upgradeProvider?.recordInstallApplyPatchStart()
var ret = CallerPatchManager.applyPatch(Utils.getApp(), patch, newApk)
if (!ret) {
upgradeProvider?.recordInstallApplyPatchFailed("合成patch失败")
// upgradeProvider?.recordInstallApplyPatchFailed("合成patch失败")
upgradeProvider?.recordInstallApplyPatchFailed(StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_compound_patch_failed))
Logger.w(TAG, "合成patch失败...")
throw AssertionError("合成patch失败...")
// throw AssertionError("合成patch失败...")
throw AssertionError("${StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_compound_patch_failed)}...")
} else {
upgradeProvider?.recordInstallApplyPatchSuccess()
upgradeProvider?.recordTargetMd5CheckStart()
ret = CallerPatchManager.checkMd5ForMergedApk(Utils.getApp(), newApk, patchInfo.targetMd5)
if (!ret) {
upgradeProvider?.recordTargetMd5CheckFailed("合成后的apk的md5与服务端上的目标版本的md5不一致:[server_target_md5: ${patchInfo.targetMd5}, merged_md5: ${Md5Util.getMd5FromFile(newApk)}]")
// upgradeProvider?.recordTargetMd5CheckFailed("合成后的apk的md5与服务端上的目标版本的md5不一致:[server_target_md5: ${patchInfo.targetMd5}, merged_md5: ${Md5Util.getMd5FromFile(newApk)}]")
upgradeProvider?.recordTargetMd5CheckFailed("${StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_compound_apk_md5_check_failed)}:[server_target_md5: ${patchInfo.targetMd5}, merged_md5: ${Md5Util.getMd5FromFile(newApk)}]")
Logger.w(TAG, "md5校验失败...")
throw AssertionError("md5校验失败:[target:${patchInfo.targetMd5}]")
// throw AssertionError("md5校验失败:[target:${patchInfo.targetMd5}]")
throw AssertionError("${StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_md5_check_failed)}:[target:${patchInfo.targetMd5}]")
} else {
Logger.w(TAG, "md5校验成功...")
upgradeProvider?.recordTargetMd5CheckSuccess()
@@ -153,10 +158,12 @@ class UpgradeManager : IDownloadListener {
} catch (t: Throwable) {
t.printStackTrace()
isPatchInstallFailed = true
patchInstallFailedReason = t.message ?: "安装失败: code -1"
// patchInstallFailedReason = t.message ?: "安装失败: code -1"
patchInstallFailedReason = t.message ?: "${StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_install_failed)}: code -1"
}
} else {
patchInstallFailedReason = "patch下载后文件不存在"
// patchInstallFailedReason = "patch下载后文件不存在"
patchInstallFailedReason = StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_patch_file_not_exist)
isPatchInstallFailed = true
}
@@ -190,10 +197,12 @@ class UpgradeManager : IDownloadListener {
override fun onError(url: String, error: String?) {
CallerLogger.d("$M_DEVA$TAG","onError downloadUrl : $url , errorMsg : $error")
CallerDevaToolsUpgradeListenerManager.invokeUpgradeError(url, error ?: "未知错误")
// CallerDevaToolsUpgradeListenerManager.invokeUpgradeError(url, error ?: "未知错误")
CallerDevaToolsUpgradeListenerManager.invokeUpgradeError(url, error ?: StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_unknown_error))
val type = types[url]
if (type == APK || type == PATCH) {
scope.launch { upgradeProvider?.recordDownloadFailed(url, error ?: "下载失败") }
// scope.launch { upgradeProvider?.recordDownloadFailed(url, error ?: "下载失败") }
scope.launch { upgradeProvider?.recordDownloadFailed(url, error ?: StringUtils.getString(com.mogo.eagle.core.widget.R.string.module_core_download_failed)) }
} else if (type == OBU) {
CallerLogger.e("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "----updateObuUpgradeStatus errorMsg = $error ")
//下载失败,删除文件夹

View File

@@ -51,6 +51,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManage
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.utilcode.util.BarUtils
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
@@ -321,7 +322,8 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener,
if (hasFocus) {
edit.hint = ""
} else {
edit.hint = "手动输入"
// edit.hint = "手动输入"
edit.hint = StringUtils.getString(R.string.module_core_manual_input)
}
}
etNoteInput.addTextChangedListener(object : TextWatcher {

View File

@@ -43,6 +43,7 @@ import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager
import com.mogo.eagle.core.function.call.takeover.CallerTakeOverRecordEventManager
import com.mogo.eagle.core.utilcode.util.BarUtils
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.getMdFormat
@@ -265,7 +266,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
if(hasFocus){
edit.hint = ""
}else{
edit.hint = "手动输入"
// edit.hint = "手动输入"
edit.hint = StringUtils.getString(R.string.module_core_manual_input)
}
}
etNoteInput.addTextChangedListener(object: TextWatcher{

View File

@@ -40,6 +40,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.JsonParser
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -143,22 +144,28 @@ class WorkOrderWindow constructor(activity: Activity) : View.OnTouchListener,
rgType.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)
}
}
}
@@ -183,7 +190,8 @@ class WorkOrderWindow constructor(activity: Activity) : View.OnTouchListener,
if(hasFocus){
edit.hint = ""
}else{
edit.hint = "手动输入"
// edit.hint = "手动输入"
edit.hint = StringUtils.getString(R.string.module_core_manual_input)
}
}
etDescribeInput.addTextChangedListener(object: TextWatcher{

View File

@@ -12,6 +12,7 @@ import androidx.appcompat.content.res.AppCompatResources
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo
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 com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -85,14 +86,16 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter<Ta
holder.tvLineName.text = recordEntity.lineName
if(recordEntity.reportNote.isEmpty() && recordEntity.level1Name.isEmpty()
&& recordEntity.level2Name.isEmpty() && recordEntity.level3Name.isEmpty()){
holder.tvTakeOverReason.text = "原因:空"
// holder.tvTakeOverReason.text = "原因:空"
holder.tvTakeOverReason.text = StringUtils.getString(R.string.module_core_cause, StringUtils.getString(R.string.module_core_empty))
}else{
val reason = if(recordEntity.reportNote.isEmpty()){
"${recordEntity.level1Name}-${recordEntity.level2Name}-${recordEntity.level3Name}"
}else{
"${recordEntity.level1Name}-${recordEntity.level2Name}-${recordEntity.level3Name}(${recordEntity.reportNote})"
}
holder.tvTakeOverReason.text = "原因:$reason"
// holder.tvTakeOverReason.text = "原因:$reason"
holder.tvTakeOverReason.text = StringUtils.getString(R.string.module_core_cause, reason)
}
if(recordEntity.reportStatus){
//已上报

View File

@@ -5,6 +5,7 @@
android:layout_width="1110px"
android:layout_height="688px">
<!-- android:text="cos桶上传中"-->
<TextView
android:id="@+id/tvUploadTitle"
android:layout_width="wrap_content"
@@ -12,7 +13,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:text="cos桶上传中"
android:text="@string/module_core_cos_uploading"
android:textColor="#FFFFFFFF"
android:textSize="56px"
android:layout_marginTop="95px"
@@ -38,6 +39,7 @@
app:layout_constraintBottom_toTopOf="@id/viewVerticalLine"
/>
<!-- android:text="取消上传"-->
<TextView
android:id="@+id/tvCancelUpload"
android:layout_width="0dp"
@@ -46,12 +48,13 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/viewVerticalLine"
app:layout_constraintBottom_toBottomOf="parent"
android:text="取消上传"
android:text="@string/module_core_cancel_upload"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancel"
android:layout_width="0dp"
@@ -60,7 +63,7 @@
app:layout_constraintLeft_toRightOf="@id/viewVerticalLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"

View File

@@ -8,11 +8,12 @@
app:roundLayoutRadius="32dp"
>
<!-- android:text="case清单"-->
<TextView
android:id="@+id/tvCaseListTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="case清单"
android:text="@string/module_core_case_list"
android:textColor="#FFFFFFFF"
android:textSize="56dp"
android:gravity="center"
@@ -22,11 +23,12 @@
android:layout_marginTop="50dp"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="52dp"
app:layout_constraintLeft_toLeftOf="parent"

View File

@@ -37,7 +37,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="@id/viewVerticalLine"
/>
<!-- android:text="保存"-->
<TextView
android:id="@+id/tvSave"
android:layout_width="0dp"
@@ -46,12 +46,13 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/viewVerticalLine"
android:text="保存"
android:text="@string/module_core_save"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancel"
android:layout_width="0dp"
@@ -60,7 +61,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/viewVerticalLine"
app:layout_constraintRight_toRightOf="parent"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"
@@ -90,6 +91,7 @@
android:layout_marginEnd="40px"
/>
<!-- android:hint="topic搜索"-->
<EditText
android:id="@+id/etSearch"
android:layout_width="0dp"
@@ -98,7 +100,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/ivSearch"
android:hint="topic搜索"
android:hint="@string/module_core_topic_search"
android:textSize="38px"
android:textColor="#FFFFFFFF"
android:textColorHint="#B3FFFFFF"

View File

@@ -5,6 +5,7 @@
android:layout_width="1110px"
android:layout_height="688px">
<!-- android:text="当前工控机磁盘空间已满"-->
<TextView
android:id="@+id/tvWarningTitle"
android:layout_width="wrap_content"
@@ -12,7 +13,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="当前工控机磁盘空间已满"
android:text="@string/module_core_ipc_disk_full"
android:textColor="#FFFFFFFF"
android:textSize="56px"
android:layout_marginTop="95px"
@@ -38,6 +39,7 @@
app:layout_constraintBottom_toTopOf="@id/viewVerticalLine"
/>
<!-- android:text="清理磁盘"-->
<TextView
android:id="@+id/tvCleanDisk"
android:layout_width="0dp"
@@ -46,12 +48,13 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/viewVerticalLine"
app:layout_constraintBottom_toBottomOf="parent"
android:text="清理磁盘"
android:text="@string/module_core_ipc_disk_clean"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancel"
android:layout_width="0dp"
@@ -60,7 +63,7 @@
app:layout_constraintLeft_toRightOf="@id/viewVerticalLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="52px"
android:gravity="center"

View File

@@ -66,7 +66,7 @@
android:layout_marginStart="@dimen/dp_20"
/>
<!-- android:text="已上报"-->
<TextView
android:id="@+id/tvBagReportStatus"
android:layout_width="162dp"
@@ -75,7 +75,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:text="已上报"
android:text="@string/module_core_reported"
android:textColor="#FFFFFFFF"
android:textSize="28dp"
android:gravity="center"

View File

@@ -122,6 +122,7 @@
android:gravity="center"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCancelSelect"
android:layout_width="200dp"
@@ -131,7 +132,7 @@
app:layout_constraintLeft_toRightOf="@id/tvSelectAll"
android:layout_marginStart="30dp"
android:background="@drawable/cancel_select_button_bg"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFFFF"
android:textSize="36dp"
android:gravity="center"

View File

@@ -104,6 +104,7 @@
</ScrollView>
<!-- android:text="上报"-->
<TextView
android:id="@+id/tvInitiativeReport"
android:layout_width="@dimen/dp_335"
@@ -112,13 +113,14 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/tvInitiativeCancel"
android:background="@drawable/bg_passive_report"
android:text="上报"
android:text="@string/module_core_report"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_100"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvInitiativeCancel"
android:layout_width="@dimen/dp_335"
@@ -126,7 +128,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="@id/viewInitiativeTitleBg"
app:layout_constraintLeft_toRightOf="@id/tvInitiativeReport"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="@color/white"
android:textSize="@dimen/sp_36"
android:gravity="center"

View File

@@ -106,6 +106,7 @@
</ScrollView>
<!-- android:text="上报"-->
<TextView
android:id="@+id/tvPassiveReport"
android:layout_width="@dimen/dp_335"
@@ -114,13 +115,14 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/tvPassiveCancel"
android:background="@drawable/bg_passive_report"
android:text="上报"
android:text="@string/module_core_report"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_100"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvPassiveCancel"
android:layout_width="@dimen/dp_335"
@@ -128,7 +130,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="@id/viewPassiveTitleBg"
app:layout_constraintLeft_toRightOf="@id/tvPassiveReport"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="@color/white"
android:textSize="@dimen/sp_36"
android:gravity="center"

View File

@@ -50,6 +50,7 @@
android:layout_margin="@dimen/dp_25"
/>
<!-- android:text="上报"-->
<TextView
android:id="@+id/tvCollectReport"
android:layout_width="270dp"
@@ -58,13 +59,14 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/tvCollectCancel"
android:background="@drawable/report_button_bg"
android:text="上报"
android:text="@string/module_core_report"
android:textColor="#FFFFFF"
android:textSize="30dp"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_40"
/>
<!-- android:text="取消"-->
<TextView
android:id="@+id/tvCollectCancel"
android:layout_width="270dp"
@@ -72,7 +74,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvCollectReport"
android:text="取消"
android:text="@string/module_core_cancel"
android:textColor="#FFFFFF"
android:textSize="30dp"
android:gravity="center"

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
@@ -387,9 +388,11 @@ 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{

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
@@ -275,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 {

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)
}
}
}
@@ -141,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 {