From 83bbcc1a9c23d977534302f3633a91f3415bc5f4 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 16 Oct 2024 18:16:39 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0]=E5=86=B7=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/widget/ColdStartView.kt | 154 +++--------------- .../src/main/res/layout/view_cold_start.xml | 6 +- .../src/main/res/values/strings.xml | 1 + 3 files changed, 29 insertions(+), 132 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt index e131dc9053..f51cc77fa6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt @@ -3,7 +3,9 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.animation.ObjectAnimator import android.animation.ValueAnimator import android.content.Context +import android.os.Build import android.os.CountDownTimer +import android.text.Html import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -70,128 +72,7 @@ class ColdStartView @JvmOverloads constructor( } private fun initView(){ - var num = 1 - tvSystemStartupTitle.setOnClickListener { - if(num == 1){ - val state = SsmInfo.ModeState.MODE_RUN_READY - val info = SsmInfo.SsmStatusInf - .newBuilder() - .setModeState(state) - .setAutoPilotReady(false) - .setRemotePilotReady(false) - .build() - - CallerAutoPilotStatusListenerManager.invokeSystemStatus(info) - num = 2 - } - else if(num == 2){ - val nodeOne = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("毫米波融合") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_FINISH) - .setEventCode("") - .build() - - val nodeTwo = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("后融合") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_STARTING) - .setEventCode("") - .build() - - val nodeThree = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("控制节点") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_STARTING) - .setEventCode("") - .build() - - val nodeFour = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("地图引擎") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_STARTING) - .setEventCode("") - .build() - - val list = ArrayList() - list.add(nodeOne) - list.add(nodeTwo) - list.add(nodeThree) - list.add(nodeFour) - - val coldStartState = SsmInfo.ColdStartState - .newBuilder() - .setEventStatus(SsmInfo.CSState.COLD_START_STARTING) - .setProcessStatus(SsmInfo.CSState.COLD_START_STARTING) - .addAllNode(list) - .build() - - CallerColdStartStateListenerManager.invokeColdStartState( - 123, - System.currentTimeMillis(), - false, - coldStartState - ) - num = 3 - }else if(num == 3){ - val nodeOne = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("毫米波融合") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_FINISH) - .setEventCode("") - .build() - - val nodeTwo = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("后融合") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_FINISH) - .setEventCode("") - .build() - - val nodeThree = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("控制节点") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_FINISH) - .setEventCode("") - .build() - - val nodeFour = SsmInfo.ColdStartNode - .newBuilder() - .setNodeName("地图引擎") - .setDesc("") - .setStatus(SsmInfo.NodeStatus.NODE_FINISH) - .setEventCode("") - .build() - - val list = ArrayList() - list.add(nodeOne) - list.add(nodeTwo) - list.add(nodeThree) - list.add(nodeFour) - - val coldStartState = SsmInfo.ColdStartState - .newBuilder() - .setEventStatus(SsmInfo.CSState.COLD_START_READY) - .setProcessStatus(SsmInfo.CSState.COLD_START_READY) - .addAllNode(list) - .build() - - CallerColdStartStateListenerManager.invokeColdStartState( - 123, - System.currentTimeMillis(), - false, - coldStartState - ) - } - } } override fun onAttachedToWindow() { @@ -213,7 +94,9 @@ class ColdStartView @JvmOverloads constructor( ThreadUtils.runOnUiThread { ipcConnectStatus = if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ //域控连接成功 - showIPCConnectSuccessView() + if(!ipcConnectStatus){ + showIPCConnectSuccessView() + } true }else{ //域控连接失败 @@ -272,13 +155,19 @@ class ColdStartView @JvmOverloads constructor( tvColdStartContent.text = getColdStartEventStatus(it.eventStatus) nodeStatusSb.clear() it.nodeList.forEach {node-> - nodeStatusSb.append("【") - nodeStatusSb.append(node.nodeName) - nodeStatusSb.append(" ") - nodeStatusSb.append(getColdStartNodeStatus(node.status)) - nodeStatusSb.append("】\n") + val nodeDetail = node.nodeName+ " " + getColdStartNodeStatus(node.status) + if(node.status == SsmInfo.NodeStatus.NODE_FAILED || node.status ==SsmInfo.NodeStatus.NODE_TIMEOUT){ + nodeStatusSb.append("${nodeDetail}") + }else{ + nodeStatusSb.append("${nodeDetail}") + } + nodeStatusSb.append("
") + } + tvColdStartNodeState.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Html.fromHtml(nodeStatusSb.toString(), Html.FROM_HTML_MODE_LEGACY) + } else { + Html.fromHtml(nodeStatusSb.toString()) } - tvColdStartNodeState.text = nodeStatusSb.toString() } } } @@ -318,7 +207,7 @@ class ColdStartView @JvmOverloads constructor( return when(nodeStatus){ // 启动中 SsmInfo.NodeStatus.NODE_STARTING->{ - "启动中" + "启动中…" } // 启动成功 SsmInfo.NodeStatus.NODE_FINISH->{ @@ -341,6 +230,7 @@ class ColdStartView @JvmOverloads constructor( * 展示域控连接成功视图 */ private fun showIPCConnectSuccessView(){ + tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title) ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success)) tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_success) //开启连接SSM倒计时 @@ -358,6 +248,9 @@ class ColdStartView @JvmOverloads constructor( //设置SSM连接文案为连接中 tvSsmConnectContent.text = resources.getString(R.string.ssm_connect_loading) tvSsmConnectContent.setTextColor(ContextCompat.getColor(context, android.R.color.white)) + viewSsmConnectDivider.visibility = View.VISIBLE + ivSsmConnectStatus.visibility = View.VISIBLE + tvSsmConnectContent.visibility = View.VISIBLE //隐藏冷启动相关视图 viewColdStartDivider.visibility = View.GONE ivColdStartStatus.visibility = View.GONE @@ -402,6 +295,7 @@ class ColdStartView @JvmOverloads constructor( * 展示SSM连接成功视图 */ private fun showSSMConnectSuccessView(){ + tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title) //取消旋转动画 ssmRotationAnim?.cancel() //取消连接SSM超时等待倒计时 @@ -430,6 +324,7 @@ class ColdStartView @JvmOverloads constructor( * 展示SSM连接失败视图 */ private fun showSSMConnectFailView(){ + tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title) //取消旋转动画 ssmRotationAnim?.cancel() ivSsmConnectStatus.rotation = 0f @@ -486,6 +381,7 @@ class ColdStartView @JvmOverloads constructor( * 冷启动失败视图 */ private fun showColdStartFailView(){ + tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title) coldStartRotationAnim?.cancel() ivColdStartStatus.rotation = 0f ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail)) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml index 8c3e142080..b9e400dd05 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml @@ -115,9 +115,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/tvColdStartContent" - app:layout_constraintLeft_toRightOf="@id/ivColdStartStatus" - android:textSize="@dimen/sp_36" - android:textColor="@color/white" + app:layout_constraintLeft_toLeftOf="@id/tvColdStartContent" + android:textSize="@dimen/sp_32" + android:textColor="#B2FFFFFF" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index ff00a195de..6d5a785236 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -219,6 +219,7 @@ 已连接域控 系统启动中… 系统启动成功 + 系统启动失败 正在连接SSM… 已连接SSM SSM连接异常,建议重启车辆并上报问题