From 86798e322f17ff94f9f6ff8db66524a81177c5cb Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 16 May 2025 18:17:18 +0800 Subject: [PATCH] =?UTF-8?q?[8.0.0]MogoMind=E9=9C=80=E6=B1=82=E8=B0=83?= =?UTF-8?q?=E6=95=B4PNC=E4=BA=8B=E4=BB=B6=E5=A2=9E=E5=8A=A0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=92=8C=E8=AF=A6=E6=83=85=E5=B1=95=E7=A4=BA=EF=BC=8C?= =?UTF-8?q?=E8=BD=A6=E9=BE=99=E6=8E=A8=E8=8D=90=E8=BD=A6=E9=81=93=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E8=89=B2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/aiview/PNCActionsViewModel.kt | 168 +++++++++++++++++- .../ui/aiview/adapter/AIMessageViewHolder.kt | 8 +- .../ui/aiview/bean/AssistantMessage.kt | 4 +- .../main/res/layout/item_ai_pnc_action.xml | 59 ++++-- .../res/drawable/bg_nde_road_recommend.xml | 2 +- 5 files changed, 224 insertions(+), 17 deletions(-) diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/PNCActionsViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/PNCActionsViewModel.kt index 65d52298e2..b906723e24 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/PNCActionsViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/PNCActionsViewModel.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.unmanned.passenger.model.TaxiPassengerModel import com.mogo.och.unmanned.passenger.ui.aiview.bean.AIMessage import mogo.telematics.pad.MessagePad @@ -47,8 +48,12 @@ class PNCActionsViewModel: ViewModel(), IMoGoAutopilotPlanningActionsListener { actions?.let { if(it.isNotEmpty() && it != currentAction){ currentAction = it - val action = AIMessage.PNCAction(it+System.currentTimeMillis(),it) - AIMessageManager.post(action) + val title = getActionTitle(it) + if(title.isNotEmpty()){ + val desc = getActionDesc(title) + val action = AIMessage.PNCAction(it+System.currentTimeMillis(),title,desc,System.currentTimeMillis()) + AIMessageManager.post(action) + } } } @@ -59,4 +64,163 @@ class PNCActionsViewModel: ViewModel(), IMoGoAutopilotPlanningActionsListener { } } + private fun getActionTitle(pncAction: String): String{ + return when(pncAction){ + "正在进站"->{ + "车辆进站" + } + "等待进站"->{ + "车辆等待进站" + } + "正在出站"->{ + "车辆出站" + } + "等待出站"->{ + "车辆等待出站" + } + "正在向左变道"->{ + "车辆向左变道" + } + "正在向右变道"->{ + "车辆向右变道" + } + "正在完成变道"->{ + "车辆完成变道" + } + "正在绕过障碍物"->{ + "车辆正在绕过前方障碍物" + } + "正在向左绕行避让前方静止障碍物"->{ + "车辆正在绕过前方障碍物" + } + "正在向右绕行避让前方静止障碍物"->{ + "车辆正在绕过前方障碍物" + } + "正在避让障碍物"->{ + "车辆正在避让前方障碍物" + } + "正在向左变道避让前方静止障碍物"->{ + "车辆正在避让前方障碍物" + } + "正在向右变道避让前方静止障碍物"->{ + "车辆正在避让前方障碍物" + } + "正在等红灯"->{ + "路口等红灯" + } + "正在向左变道避让前方道路施工"->{ + "车辆正在变道避让前方道路施工" + } + "正在向右变道避让前方道路施工"->{ + "车辆正在变道避让前方道路施工" + } + "正在向左绕行避让前方道路施工"->{ + "车辆正在绕行避让前方道路施工" + } + "正在向右绕行避让前方道路施工"->{ + "车辆正在绕行避让前方道路施工" + } + + "正在向左变道避让前方道路事故"->{ + "车辆正在变道避让前方道路事故" + } + "正在向右变道避让前方道路事故"->{ + "车辆正在变道避让前方道路事故" + } + "正在向左绕行避让前方道路事故"->{ + "车辆正在绕行避让前方道路事故" + } + "正在向右绕行避让前方道路事故"->{ + "车辆正在绕行避让前方道路事故" + } + "正在跟随车辆行驶"->{ + "车辆正在跟车通行" + } + "正在跟车行驶"->{ + "车辆正在跟车通行" + } + "正在向左变道避让前方车龙"->{ + "车辆正在绕行前方车龙" + } + "正在向右变道避让前方车龙"->{ + "车辆正在绕行前方车龙" + } + "正在使用云端规划通过路口"->{ + "车辆正在使用云端轨迹通行" + } + "正在避让后方来车"->{ + "车辆正在避让后方来车" + } + else->{ + "" + } + } + } + + private fun getActionDesc(action: String): String{ + return when(action){ + "车辆进站"->{ + "前方即将到达${TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName}," + + "车辆正在规划减速并进站停靠,请安心等待车辆停稳再下车哦~" + } + "车辆等待进站"->{ + "车辆待环境安全后进站,耐心等几秒,安全比赶路更重要~" + } + "车辆出站"->{ + "欢迎乘坐MOGO RoboTaxi~车辆正在规划出站,坐稳扶好哦,我们出发啦!小智持续守护您的行程。" + } + "车辆等待出站"->{ + "车辆待环境安全后出站,耐心等几秒,安全比赶路更重要~" + } + "车辆向左变道"->{ + "确认环境安全,车辆正在规划平稳向左/向右变道,同时持续监测周边交通参与者动向,放心交给我们吧!" + } + "车辆向右变道"->{ + "确认环境安全,车辆正在规划平稳向左/向右变道,同时持续监测周边交通参与者动向,放心交给我们吧!" + } + "车辆完成变道"->{ + "变道完成啦,继续前进!小智持续守护您的行程。" + } + "车辆正在绕过前方障碍物"->{ + "发现前方障碍物,车辆正在规划平稳变道,即将画出一条完美弧线~" + } + "车辆正在避让前方障碍物"->{ + "发现前方障碍物,车辆正在规划平稳避让,诠释优雅与丝滑~" + } + "车辆完成绕障"->{ + "绕障完成啦,继续前进!小智持续守护您的行程。" + } + "路口等红灯"->{ + "车辆正在路口等红灯,可以安心放空望望窗外~小智一直在您身边哦!" + } + "车辆正在变道避让前方道路施工"->{ + "车辆正在提前规划向左/右变道避让前方道路施工,稳稳的很安心~您已体验到车路云一体化协同应用场景,是当之无愧的先锋体验官!" + } + "车辆正在绕行避让前方道路施工"->{ + "车辆正在提前规划向左/右绕行避让前方道路施工,稳稳的很安心~您已体验到车路云一体化协同应用场景,是当之无愧的先锋体验官!" + } + "车辆正在变道避让前方道路事故"->{ + "车辆正在提前规划向左/右变道避让前方道路事故,放心看我表现吧!您已体验到车路云一体化协同应用场景,小智为您欢呼!" + } + "车辆正在绕行避让前方道路事故"->{ + "车辆正在提前规划向左/右绕行避让前方道路事故,放心看我表现吧!您已体验到车路云一体化协同应用场景,小智为您欢呼!" + } + "车辆正在跟车通行"->{ + "车辆正在跟随前车通行,舒适度MAX~您已体验到车路云一体化协同应用场景,超越全国99%的乘客!" + } + "车辆正在绕行前方车龙"->{ + "车辆正在提前规划向左/右变道避让路口车龙,舒适度MAX~。您已体验到车路云一体化协同应用场景,超越全国99%的乘客!" + } + "车辆正在使用云端轨迹通行"->{ + "前方智慧路口内有障碍物,车辆正在使用云端规划轨迹通行。您已体验到车路云一体化协同应用场景,超越全国99%的乘客!" + } + "车辆正在避让后方来车"->{ + "车辆正在避让后方来车,耐心等几秒,安全比赶路更重要~" + } + else->{ + "" + } + } + } + } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt index 99f87adb19..61283e46aa 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt @@ -186,9 +186,15 @@ class QAViewHolder(val binding: View) : MessageViewHolder(binding) { class PNCActionViewHolder(binding: View) : MessageViewHolder(binding){ private var tvPncAction: TextView = binding.findViewById(R.id.tvPncAction) + private var tvPncActionDesc: TextView = binding.findViewById(R.id.tvPncActionDesc) + private var tvPncActionTime: TextView = binding.findViewById(R.id.tvPncActionTime) override fun bind(item: AIMessage, onItemClickListener: OnItemClickListener?) { - tvPncAction.text = item.title + if(item is AIMessage.PNCAction){ + tvPncAction.text = item.title + tvPncActionDesc.text = item.actionDesc + tvPncActionTime.text = DateTimeUtils.getTimeText(item.timeStamp, DateTimeUtils.HH_mm_ss) + } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/bean/AssistantMessage.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/bean/AssistantMessage.kt index d6d00d5861..2b7ca9a3e4 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/bean/AssistantMessage.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/bean/AssistantMessage.kt @@ -135,7 +135,9 @@ sealed class AIMessage( data class PNCAction( override val id: String, - override val title: String + override val title: String, + var actionDesc: String, + var timeStamp: Long = 0, //事件发生事件戳 ): AIMessage(id,title) data class RoadV2NEvent( diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_pnc_action.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_pnc_action.xml index 3d1864bf9a..701ab43851 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_pnc_action.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_pnc_action.xml @@ -9,18 +9,53 @@ app:yOffset="0dp" app:blurRadius="@dimen/dp_26"> - + android:layout_height="wrap_content"> + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_nde_road_recommend.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_nde_road_recommend.xml index b2ea52f057..6cdfd89974 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_nde_road_recommend.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_nde_road_recommend.xml @@ -1,7 +1,7 @@