From b6af3cb81f1da81f5cf0d0571f28b4b2680dba42 Mon Sep 17 00:00:00 2001 From: pangfan Date: Thu, 23 Mar 2023 20:04:49 +0800 Subject: [PATCH 01/13] =?UTF-8?q?[=E5=A4=A7=E7=90=86/=E7=83=9F=E5=8F=B0?= =?UTF-8?q?=E4=BA=A4=E4=BB=98]1.RoboBus-Passenger=EF=BC=9Av2.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index db8144bdb9..f8e20f3ee9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1002000 -versionName=1.0.2 +versionCode=2000000 +versionName=2.0.0 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 From 5c03c0d07ec5a8aa84f20c9c27de3eeb7d04a75c Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 29 Mar 2023 18:31:18 +0800 Subject: [PATCH 02/13] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]?= =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83=E5=8E=BB=E9=99=A4=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/urlConfig.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/urlConfig.json b/app/urlConfig.json index f05fe5d46e..d769df4d20 100644 --- a/app/urlConfig.json +++ b/app/urlConfig.json @@ -39,13 +39,13 @@ "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" }, "online": { - "och_url": "https://och-driver-eh.zhidaozhixing.com:18182", - "shuttle_url": "https://och-driver-eh.zhidaozhixing.com:18182", - "passport_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/passport/", - "socket_base_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/push/", - "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/", - "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com:18182/", - "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com:18182/" + "och_url": "https://och-driver-eh.zhidaozhixing.com", + "shuttle_url": "https://och-driver-eh.zhidaozhixing.com", + "passport_url": "https://och-driver-eh.zhidaozhixing.com/arch/passport/", + "socket_base_url": "https://och-driver-eh.zhidaozhixing.com/arch/push/", + "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com/arch/", + "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com/", + "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com/" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -53,8 +53,8 @@ "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", - "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com:18181/", - "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com:18181/" + "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com/", + "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com/" } }, "yantai": { From 66599d942ed6e205d7a1cd85ec20ce01ba5d68fc Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 10:21:01 +0800 Subject: [PATCH 03/13] =?UTF-8?q?[3.0.0]=20-d=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=BA3.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index dc2403a2c9..3cc68ab74a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2000000 -versionName=2.0.0 +versionCode=3000000 +versionName=3.0.0 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 From 3aea2746f9dc9d2de9230fad217727cb7977a23f Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 30 Mar 2023 17:13:31 +0800 Subject: [PATCH 04/13] =?UTF-8?q?[upgrade]=20[=E5=8D=87=E7=BA=A7=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E7=9A=84=E7=B1=BB=E5=9E=8B]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/utilcode/mogo/AppIdentityModeUtils.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index d143e6dfa3..b4a36d9efd 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -2,10 +2,19 @@ package com.mogo.eagle.core.utilcode.mogo fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: String): Int { return when { - isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1 - isTaxi(appIdentityMode) && isDriver(appIdentityMode) -> 2 - isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3 - isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4 + isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1 // 出租乘客端 + isTaxi(appIdentityMode) && isDriver(appIdentityMode) -> 2 // 出租司机端 + + isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3 // 公交乘客端 + isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4 // 公交司机端 + + isCharter(appIdentityMode) && isPassenger(appIdentityMode) -> 5 // 包车乘客端 + isCharter(appIdentityMode) && isDriver(appIdentityMode) -> 6 // 包车司机端 + + isShuttle(appIdentityMode) && isPassenger(appIdentityMode) -> 7 // 接驳乘客端 + isShuttle(appIdentityMode) && isDriver(appIdentityMode) -> 8 // 接驳司机端 + + isSweeper(appIdentityMode) && isDriver(appIdentityMode) -> 9 // 清扫车司机端 else -> 0 } } From 04c799b2f50d7104552c0b1a7b39ff34ff85c1cc Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 30 Mar 2023 18:30:22 +0800 Subject: [PATCH 05/13] =?UTF-8?q?[upgrade]=20[=E5=8D=87=E7=BA=A7=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E7=9A=84=E7=B1=BB=E5=9E=8B]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/utilcode/mogo/AppIdentityModeUtils.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index b4a36d9efd..7e94907e1e 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -8,13 +8,13 @@ fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: String): Int { isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3 // 公交乘客端 isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4 // 公交司机端 - isCharter(appIdentityMode) && isPassenger(appIdentityMode) -> 5 // 包车乘客端 - isCharter(appIdentityMode) && isDriver(appIdentityMode) -> 6 // 包车司机端 + isCharter(appIdentityMode) && isPassenger(appIdentityMode) -> 8 // 包车乘客端 + isCharter(appIdentityMode) && isDriver(appIdentityMode) -> 9 // 包车司机端 - isShuttle(appIdentityMode) && isPassenger(appIdentityMode) -> 7 // 接驳乘客端 - isShuttle(appIdentityMode) && isDriver(appIdentityMode) -> 8 // 接驳司机端 + isShuttle(appIdentityMode) && isPassenger(appIdentityMode) -> 10 // 接驳乘客端 + isShuttle(appIdentityMode) && isDriver(appIdentityMode) -> 11 // 接驳司机端 - isSweeper(appIdentityMode) && isDriver(appIdentityMode) -> 9 // 清扫车司机端 + isSweeper(appIdentityMode) && isDriver(appIdentityMode) -> 12 // 清扫车司机端 else -> 0 } } From b795ca2f7858d580ecdba47b9cc6ccb1409b6c2f Mon Sep 17 00:00:00 2001 From: pangfan Date: Thu, 30 Mar 2023 19:19:19 +0800 Subject: [PATCH 06/13] =?UTF-8?q?[opt]1.RoboTaxi=E5=9F=8B=E7=82=B9?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0lineId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/taxi/constant/TaxiConst.kt | 1 + .../java/com/mogo/och/taxi/model/TaxiModel.java | 14 +++++++------- .../mogo/och/taxi/utils/TaxiAnalyticsManager.java | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index 9fb2851746..9b7e82ade1 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -49,6 +49,7 @@ class TaxiConst { const val EVENT_PARAM_TIME = "time" const val EVENT_PARAM_START_NAME = "start_name" const val EVENT_PARAM_END_NAME = "end_name" + const val EVENT_PARAM_LINE_ID = "line_id" const val EVENT_PARAM_ORDER_NUMBER = "order_num" const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 4201b9d844..d0d6536505 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1,10 +1,5 @@ package com.mogo.och.taxi.model; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; @@ -96,6 +91,11 @@ import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import system_master.SystemStatusInfo; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + /** * Created by pangfan on 2021/8/19 *

@@ -942,7 +942,7 @@ public class TaxiModel { + "isRestartAutopilot = "+isRestartAutopilot); TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo); if (mControllerStatusCallback != null) { mControllerStatusCallback.startOpenAutopilot(); @@ -1173,7 +1173,7 @@ public class TaxiModel { mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo); if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java index 49e2bd29bf..c0e75d16ad 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -86,7 +86,7 @@ public class TaxiAnalyticsManager { * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) */ public void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, String orderNo) { + boolean restart, boolean send, String startName, String endName, long lineId, String orderNo) { mStartAutopilotKey = restart ? TaxiConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiConst.EVENT_KEY_START_SERVICE; String sn = MoGoAiCloudClientConfig.getInstance().getSn(); @@ -101,6 +101,7 @@ public class TaxiAnalyticsManager { mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_TIME, dateTime); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_NAME, startName); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_END_NAME, endName); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_LINE_ID, lineId); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); // CallerLogger.INSTANCE.d(M_TAXI + "埋点==","restart = "+restart+", send= "+send); From 5cea9ab27c1412b7ffba2292f1cbe3b96cf6076f Mon Sep 17 00:00:00 2001 From: donghongyu Date: Fri, 31 Mar 2023 18:15:31 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E3=80=8Cdev=5Frobobus-d=5F230322=5F3.0.0?= =?UTF-8?q?=E3=80=8D=201=E3=80=81=E5=8D=87=E7=BA=A7=E9=AB=98=E7=B2=BE?= =?UTF-8?q?=E5=9C=B0=E5=9B=BESDK=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=BA=86?= =?UTF-8?q?=E7=99=BD=E5=A4=A9=E6=A8=A1=E5=BC=8F=E4=B8=AD=E7=82=B9=E4=BA=91?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 3cc68ab74a..cc7237d6ba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.6.4 MOGO_TELEMATIC_VERSION=1.4.6.4 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.9 +MAP_SDK_VERSION=2.12.0.6 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 From 2b584b39852bdee43c2a4d3930734e79eae89350 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 31 Mar 2023 20:41:07 +0800 Subject: [PATCH 08/13] =?UTF-8?q?[dev=5F3.0.0]=E5=A2=9E=E5=8A=A0=E4=BA=91?= =?UTF-8?q?=E5=8D=97=E7=A7=81=E6=9C=8D=E4=BA=91=E9=80=9A=E8=AF=9D=E9=95=BF?= =?UTF-8?q?=E9=93=BE=E9=85=8D=E7=BD=AE=E3=80=81fix=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E7=89=88=E6=9C=AC=E7=BC=96=E8=AF=91=E4=B8=8D?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/urlConfig.json | 29 ++++++++++++------- .../function/chat/facade/consts/Consts.kt | 13 ++++++--- .../com/mogo/eagle/core/data/app/UrlConfig.kt | 4 ++- .../java/com/mogo/map/AMapViewWrapper.java | 12 ++++++-- 4 files changed, 39 insertions(+), 19 deletions(-) diff --git a/app/urlConfig.json b/app/urlConfig.json index 71f5bb0481..adb70908aa 100644 --- a/app/urlConfig.json +++ b/app/urlConfig.json @@ -8,7 +8,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" }, "online": { "och_url": "https://tech.zhidaohulian.com", @@ -18,7 +19,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" }, "demo": { "och_url": "http://tech-dev.zhidaohulian.com", @@ -28,7 +30,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" } }, "dali": { @@ -40,7 +43,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" }, "online": { "och_url": "https://och-driver-eh.zhidaozhixing.com", @@ -50,8 +54,8 @@ "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com/", "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" - + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -61,8 +65,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com/", "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" - + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" } }, "yantai": { @@ -74,7 +78,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s", + "chart_socket_url":"" }, "online": { "och_url": "https://och-driver-yt.zhidaozhixing.com", @@ -84,7 +89,8 @@ "socket_tech_url": "https://och-driver-yt.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-yt.zhidaozhixing.com/", "eagle_dns_url": "https://och-hailing-yt.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s", + "chart_socket_url":"" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -94,7 +100,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s", + "chart_socket_url":"" } } } diff --git a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt index 9bf65b3dcf..8ae3a7a508 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.chat.facade.consts import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig //WebSocket发送数据相关 const val SOCKET_HAND_SHAKE = 0 @@ -60,10 +61,14 @@ class ChatHttp { } fun getSocketServer(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_QA, DebugConfig.NET_MODE_DEMO -> DEV_SOCKET_SERVER - DebugConfig.NET_MODE_RELEASE -> SOCKET_SERVER - else -> SOCKET_SERVER + if(FunctionBuildConfig.urlJson.chartSocketUrl.isEmpty()){ + return when (DebugConfig.getNetMode()) { + DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_QA, DebugConfig.NET_MODE_DEMO -> DEV_SOCKET_SERVER + DebugConfig.NET_MODE_RELEASE -> SOCKET_SERVER + else -> SOCKET_SERVER + } + }else{ + return FunctionBuildConfig.urlJson.chartSocketUrl } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt index 0e3e9d89e2..29b5fd2374 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt @@ -18,5 +18,7 @@ data class UrlConfig( @SerializedName("eagle_dns_url") val eagleDnsUrl: String, @SerializedName("bind_driver_qr_url") - val bindDriverQRUrl: String + val bindDriverQRUrl: String, + @SerializedName("chart_socket_url") + val chartSocketUrl: String ) \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 28e073fa61..7efafe326e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -78,6 +78,7 @@ import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptorFactory; import com.zhidaoauto.map.sdk.open.marker.Marker; import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener; import com.zhidaoauto.map.sdk.open.query.LonLatPoint; +import com.zhidaoauto.map.sdk.open.road.RoadCross; import com.zhidaoauto.map.sdk.open.road.StopLine; import com.zhidaoauto.map.sdk.open.tools.MapTools; import com.zhidaoauto.map.sdk.open.view.MapAutoView; @@ -199,10 +200,9 @@ public class AMapViewWrapper implements IMogoMapView, } @Override - public void onRoadIdInfo(@androidx.annotation.Nullable String roadId) { - + public void onRoadIdInfo(@androidx.annotation.Nullable String roadId, @androidx.annotation.Nullable String laneId) { if (roadId != null && !TextUtils.isEmpty(roadId)) { - // CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::" + roadId); + // CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::" + roadId); CallerMapRoadListenerManager.INSTANCE.invokeListenersOnRoadIdGet(roadId); } else { //CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::null"); @@ -1105,4 +1105,10 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().cancelCacheHDData(); } } + + @Override + public void onRoadCrossInfo(@androidx.annotation.Nullable RoadCross roadCross) { + + } + } From 75536bda377a560fd194ab9b60ae5942f80b2e36 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Sun, 2 Apr 2023 00:34:19 +0800 Subject: [PATCH 09/13] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]?= =?UTF-8?q?=E4=BA=91=E8=B0=83=E5=BA=A6=E5=A2=9E=E5=8A=A0=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E8=87=AA=E9=A9=BE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/function/biz/FuncBizProvider.kt | 4 ++ .../biz/dispatch/DispatchAutoPilotManager.kt | 44 +++++++++++++-- .../core/function/hmi/ui/MoGoHmiProvider.kt | 8 +++ .../hmi/ui/notice/DispatchDialogManager.java | 20 +++++++ .../hmi/ui/notice/DispatchRestartDialog.java | 29 ++++++++++ .../layout/dialog_adas_dispatch_restart.xml | 55 +++++++++++++++++++ .../src/main/res/values/strings.xml | 3 + .../function/api/biz/IMoGoFuncBizProvider.kt | 5 ++ .../api/hmi/warning/IMoGoHmiProvider.kt | 5 ++ .../function/call/hmi/CallerHmiManager.kt | 6 ++ 10 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt index 4d457efad4..3a149c309d 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt @@ -74,6 +74,10 @@ class FuncBizProvider : IMoGoFuncBizProvider { dispatchAutoPilotManager.stopCancel(manualTrigger) } + override fun restartDispatchAffirm() { + dispatchAutoPilotManager.restartDispatch() + } + override fun testDispatch(sceneType: Int) { dispatchAutoPilotManager.testDispatch(sceneType) } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt index cfd1e51e72..3a61b07d74 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt @@ -32,6 +32,7 @@ import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Compani import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_STOP_MANUAL_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_STOP_TIMER_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.dispatchServiceModel +import com.zhjt.mogo.adas.data.bean.MogoReport import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -251,6 +252,15 @@ class DispatchAutoPilotManager private constructor() : } } + /** + * 重启自驾 + */ + fun restartDispatch(){ + CallerHmiManager.dismissDispatchDialog() + //启动自动驾驶 + startAutoPilot() + } + override fun onCheck(isChecked: Boolean) { if (isChecked) { // 确保到达终点后,再次点击,不会有回馈,并且在下次调开始时,才会重置 @@ -329,18 +339,40 @@ class DispatchAutoPilotManager private constructor() : */ override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { if (guardianInfo == null || !guardianInfo.hasCode()) return - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())){ + Log.i(TAG,"onAutopilotGuardian "+guardianInfo.code) + //掉自驾 + when(guardianInfo.code){ + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_BRAKE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_ACCEL, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_STEER, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_GEAR_SWITCH, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN->{ + //如果到达终点,则不处理 + if(isArriveEnd){ + return + } + //处于云调度任务中且调度实体类不为空,弹出重启自驾弹窗 + if(isDispatch){ + receiverBean?.let { CallerHmiManager.showDispatchRestartDialog(it) } + } + } + } + if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_START 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)") - }else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_SUCCESS 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)") - }else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_FAILURE 轨迹管理_轨迹下载失败,本地无对应轨迹") - }else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_WARNING 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功") - }else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_TIMEOUT 轨迹管理_轨迹下载超时") } - } fun testDispatch(sceneType: Int) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 8d5ad1002c..1909e3caa8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -226,6 +226,14 @@ class MoGoHmiProvider : IMoGoHmiProvider { } } + override fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean) { + ThreadUtils.runOnUiThread { + context?.let{ + DispatchDialogManager.getInstance(it).showRestartDialog(msgData) + } + } + } + override fun showNoticeForTrafficWithData(pushData: NoticeTrafficStylePushData?) { pushData?.let { ThreadUtils.runOnUiThread { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java index d3a04fa4bd..457a1682e9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java @@ -53,6 +53,26 @@ public class DispatchDialogManager { } } + /** + * 云调度重启自驾 + * @param msgData 长链下发实体 + */ + public void showRestartDialog(DispatchAdasAutoPilotLocReceiverBean msgData){ + if(isShowing()){ + return; + } + if (msgData == null) { + return; + } + if (dialog != null && dialog.isShowing()) { //避免下发两次 + return; + } + if(dialog == null){ + dialog = new DispatchRestartDialog(mContext); + } + dialog.showDialog(msgData); + } + private void dispatchHengYang(DispatchAdasAutoPilotLocReceiverBean msgData) { // if (msgData.getType() == DISPATCH_TYPE_START) { //衡阳只有开始调度 // } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java new file mode 100644 index 0000000000..341234ee7e --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java @@ -0,0 +1,29 @@ +package com.mogo.eagle.core.function.hmi.ui.notice; + +import android.content.Context; +import android.widget.TextView; + +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; + +public class DispatchRestartDialog extends DispatchBaseDialog{ + + public DispatchRestartDialog(@NonNull Context context) { + super(context); + setContentView(R.layout.dialog_adas_dispatch_restart); + setCanceledOnTouchOutside(false); + TextView dispatchRestartEnter = findViewById(R.id.tv_dispatch_restart_enter); + dispatchRestartEnter.setOnClickListener(v -> { + //启动自动驾驶 + CallerFuncBizManager.getBizProvider().restartDispatchAffirm(); + }); + } + + @Override + public void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent) { + show(); + } +} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml new file mode 100644 index 0000000000..94e7f1ece3 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + \ No newline at end of file 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 81a4373158..325ba8e816 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 @@ -63,6 +63,9 @@ 航班信息: 接受任务 调度确认 + 提示 + 当前车辆已退出自动驾驶,请点击下方按钮恢复 + 进入自动驾驶 车辆将开启自动驾驶,并行驶至: 确认 取消 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt index a14a34fe90..def198adbf 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt @@ -46,6 +46,11 @@ interface IMoGoFuncBizProvider : IMoGoFunctionServerProvider { */ fun stopDispatchCancel(manualTrigger: Boolean) + /** + * 调度重启自驾确认 + */ + fun restartDispatchAffirm() + /** * 调度测试 */ diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt index c63df8e10a..b638739c28 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt @@ -107,6 +107,11 @@ interface IMoGoHmiProvider :IProvider{ */ fun dismissDispatchDialog() + /** + * 调度重启自驾弹窗展示 + */ + fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean) + /** * 设置状态栏暗夜或明亮模式 * 默认 light diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 5fd0254199..0b412adf03 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -165,6 +165,12 @@ object CallerHmiManager { hmiProviderApi?.dismissDispatchDialog() } + /** + * 云调度重启自驾弹窗 + */ + fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean){ + hmiProviderApi?.showDispatchRestartDialog(msgData) + } fun showVideoDialog(infList: List) { hmiProviderApi?.showVideoDialog(infList) From 8426cd715d115010f5baecb6b0019ca093a56136 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 4 Apr 2023 19:26:07 +0800 Subject: [PATCH 10/13] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9B=92=E5=AD=90V2X=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/taxi_p_base_fragment.xml | 1 - .../function/hmi/ui/msgbox/MBoxBubbleView.kt | 3 + .../BusPassengerMsgBoxBubbleAdapter.kt | 2 + .../adapter/DriverMsgBoxBubbleAdapter.kt | 2 + .../msgbox/adapter/DriverMsgBoxListAdapter.kt | 2 + .../ui/msgbox/adapter/MBoxBubbleAdapter.kt | 2 + .../ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt | 2 + .../ui/msgbox/adapter/MMsgBoxListAdapter.kt | 2 + .../adapter/PassengerMsgBoxBubbleAdapter.kt | 2 + .../adapter/PassengerMsgBoxListAdapter.kt | 2 + .../res/drawable-xhdpi/bg_msg_box_v2x.png | Bin 0 -> 29866 bytes .../src/main/res/layout/item_bus_box_v2x.xml | 30 +- .../src/main/res/layout/item_m_box_notice.xml | 2 +- .../main/res/layout/item_m_box_operation.xml | 2 +- .../src/main/res/layout/item_m_box_v2x.xml | 30 +- .../main/res/layout/item_m_msg_box_v2x.xml | 32 +- .../main/res/layout/item_m_msg_list_v2x.xml | 32 +- .../src/main/res/layout/item_msg_box_v2x.xml | 31 +- .../main/res/layout/item_msg_bubble_v2x.xml | 36 +- .../res/layout/item_passenger_msg_box_v2x.xml | 32 +- .../layout/item_passenger_msg_list_v2x.xml | 30 +- .../main/res/layout/layout_m_box_bubble.xml | 2 +- .../eagle/core/data/enums/EventTypeEnumNew.kt | 335 +++++++++++++++++- 23 files changed, 508 insertions(+), 106 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml index 4c54205202..5473f300af 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -82,7 +82,6 @@ android:layout_width="650dp" android:layout_height="wrap_content" android:layout_marginBottom="20dp" - android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/viewPassengerMsgBoxButton" app:layout_constraintLeft_toLeftOf="@id/viewPassengerMsgBoxButton" app:layout_constraintRight_toRightOf="@id/viewPassengerMsgBoxButton" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 42ff1b43d0..42f7fa8178 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -19,6 +19,9 @@ import com.mogo.eagle.core.function.msgbox.MsgBoxConfig import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_m_box_bubble.view.* +/** + * M2气泡态消息盒子 + */ class MBoxBubbleView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt index a64c894066..196baac151 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt @@ -80,6 +80,7 @@ class BusPassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerV holder.tvBusPV2XContent.text = v2XMsg.content holder.ivBusPV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.tvBusPV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } } @@ -125,6 +126,7 @@ class BusPassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerV var ivBusPV2XImage: ImageView = itemView.findViewById(R.id.ivBusPV2XImage) var tvBusPV2XTime: TextView = itemView.findViewById(R.id.tvBusPV2XTime) var tvBusPV2XContent: TextView = itemView.findViewById(R.id.tvBusPV2XContent) + var tvBusPV2XTitle: TextView = itemView.findViewById(R.id.tvBusPV2XTitle) } //运营消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt index 466e5bf5a6..408fb9fcf3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt @@ -181,6 +181,7 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A holder.clV2XLayout.setOnClickListener { CallerMsgBoxEventListenerManager.invokeBubbleV2XListener(msgBoxBean) } + holder.tvV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is BubbleSummaryHolder -> { @@ -275,6 +276,7 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A var tvV2XTime: TextView = itemView.findViewById(R.id.tvV2XTime) var tvV2XContent: TextView = itemView.findViewById(R.id.tvV2XContent) var clV2XLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clV2XLayout) + var tvV2XTitle: TextView = itemView.findViewById(R.id.tvV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 6c27709cbf..a31166ff14 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -369,6 +369,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.ivV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type)) ) + holder.tvV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is MsgBoxSummary -> { @@ -472,6 +473,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : var ivV2XImage: ImageView = itemView.findViewById(R.id.ivV2XImage) var tvV2XTime: TextView = itemView.findViewById(R.id.tvV2XTime) var tvV2XContent: TextView = itemView.findViewById(R.id.tvV2XContent) + var tvV2XTitle: TextView = itemView.findViewById(R.id.tvV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt index 83842d19e9..ef6669cb99 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt @@ -82,6 +82,7 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -179,6 +180,7 @@ class MMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) var clMVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clMVeXLayout) + var tvMV2XTitle: TextView = itemView.findViewById(R.id.tvMV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt index 62172a1ff6..aa1ef8a854 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt @@ -100,6 +100,7 @@ class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -155,6 +156,7 @@ class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -167,6 +168,7 @@ class PassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView var tvPassengerV2XTime: TextView = itemView.findViewById(R.id.tvPassengerV2XTime) var tvPassengerV2XContent: TextView = itemView.findViewById(R.id.tvPassengerV2XContent) var clPassengerVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clPassengerVeXLayout) + var tvPassengerV2XTitle: TextView = itemView.findViewById(R.id.tvPassengerV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt index 3db034d364..21ae03bffc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt @@ -97,6 +97,7 @@ class PassengerMsgBoxListAdapter(private val activity: Activity): RecyclerView.A holder.tvPassengerV2XContent.text = v2XMsg.content holder.ivPassengerV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.tvPassengerV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is ListSummaryHolder -> { @@ -140,6 +141,7 @@ class PassengerMsgBoxListAdapter(private val activity: Activity): RecyclerView.A var ivPassengerV2XImage: ImageView = itemView.findViewById(R.id.ivPassengerV2XImage) var tvPassengerV2XTime: TextView = itemView.findViewById(R.id.tvPassengerV2XTime) var tvPassengerV2XContent: TextView = itemView.findViewById(R.id.tvPassengerV2XContent) + var tvPassengerV2XTitle: TextView = itemView.findViewById(R.id.tvPassengerV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d41c75bc33019166f8f2414fb1848df07def69f7 GIT binary patch literal 29866 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 HH-i5U&+tW$ literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml index 1c4c09f901..d787ce3fb9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml @@ -19,14 +19,26 @@ android:layout_marginStart="@dimen/dp_26" /> + + @@ -35,16 +47,14 @@ android:id="@+id/tvBusPV2XContent" android:layout_width="0dp" android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" + app:layout_constraintLeft_toLeftOf="@id/tvBusPV2XTitle" + app:layout_constraintRight_toRightOf="@id/tvBusPV2XTime" + app:layout_constraintTop_toBottomOf="@id/tvBusPV2XTitle" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintLeft_toRightOf="@id/ivBusPV2XImage" - app:layout_constraintRight_toLeftOf="@id/tvBusPV2XTime" - android:layout_marginStart="@dimen/dp_26" - android:layout_marginEnd="@dimen/dp_16" - android:textColor="#FF203555" - android:textSize="@dimen/dp_36" + android:textColor="#CC203555" + android:textSize="@dimen/dp_28" android:gravity="start" - android:maxLines="1" + android:maxLines="2" android:ellipsize="end" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml index 4f6a9e0465..75d41bf8bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml @@ -1,6 +1,6 @@ + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml index 27ae52a175..6f5eb37a39 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml @@ -19,12 +19,25 @@ android:layout_marginStart="@dimen/dp_13" /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml index deddc8f6e2..37f11a7689 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml @@ -14,12 +14,25 @@ android:layout_marginStart="@dimen/dp_16" /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml index ef36f539a0..394a6676bb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml @@ -3,8 +3,7 @@ android:layout_width="804dp" android:layout_height="160dp" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#53000000" - app:roundLayoutRadius="24dp" + android:background="@drawable/bg_msg_box_v2x" android:layout_gravity="center_horizontal" android:layout_marginStart="30dp" android:layout_marginEnd="30dp" @@ -20,11 +19,24 @@ app:layout_constraintLeft_toLeftOf="parent" android:layout_margin="25dp"/> + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml index 9888e42f87..80adf656b8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml @@ -1,14 +1,14 @@ + android:layout_marginBottom="7dp" + > + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml index fbe95e1a36..3aae086477 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml @@ -20,32 +20,42 @@ /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml index a323fe7515..227d4c0f8d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml @@ -14,31 +14,41 @@ /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml index f70a509ba8..7bfd821501 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml @@ -1,7 +1,7 @@ diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index aea8bbfd7e..fa74444d2d 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -108,24 +108,24 @@ enum class EventTypeEnumNew( //接管 TAKE_OVER_EVENT( - "20000", "注意周围、立即接管", "注意周围、立即接管", R.drawable.icon_warning_take_over, + "20000", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over, "注意周围、立即接管", "自动驾驶退出请立即接管" ), // 前方静止or慢速车辆报警 - ALERT_FRONT_CAR("99999"), + ALERT_FRONT_CAR("99999","前方预警"), // 限行管理 ALERT_TRAFFIC_CONTROL("99998"), // 红绿灯事件、是建议以多少速度驶过 - ALERT_TRAFFIC_LIGHT_SUGGEST("99997"), + ALERT_TRAFFIC_LIGHT_SUGGEST("99997","红绿灯"), // 红绿灯事件、一种是绿灯不足3秒 - ALERT_TRAFFIC_LIGHT_WARNING("99996"), + ALERT_TRAFFIC_LIGHT_WARNING("99996","红绿灯"), // 故障车辆 - ALERT_CAR_TROUBLE_WARNING("20007"), + ALERT_CAR_TROUBLE_WARNING("20007","故障车辆"), // 疲劳驾驶 ALERT_FATIGUE_DRIVING("99993"), @@ -219,28 +219,28 @@ enum class EventTypeEnumNew( //---------弱势交通参与者 obu and cloud start ------> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES( 1001.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, content = "注意摩托车", tts = "注意摩托车" ), TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES( 1002.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, content = "注意非机动车", tts = "注意非机动车" ), TYPE_USECASE_ID_VRUCW_PERSON( 1003.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, content = "注意行人", tts = "注意行人" ), TYPE_ERROR_WEAKNESS( 1006.toString(), - "未知/错误/异常", + "未知障碍物", poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, content = "前方有未知障碍物", tts = "前方有未知障碍物" @@ -397,7 +397,7 @@ enum class EventTypeEnumNew( ), TYPE_NO_PASSING( 51.toString(), - "不通", + "道路不通", poiTypeSrcVr = R.drawable.v2x_icon_fenglu_vr, content = "前方%s米不通", tts = "前方%s米不通" @@ -470,7 +470,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_JINGZHI( "100251", - "前方%s米静止障碍物占道", + "静止障碍物占道", poiTypeSrcVr = R.drawable.v2x_icon_jingzhi_zhangai, content = "前方%s米静止障碍物占道", tts = "前方%s米静止障碍物占道" @@ -478,7 +478,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_SHIGU( "100321", - "前方%s米道路事故", + "道路事故", poiTypeSrcVr = R.drawable.v2x_icon_shigu_sanjiaopai, content = "前方%s米道路事故", tts = "前方%s米道路事故" @@ -486,7 +486,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_SHIGONG( "100061", - "前方%s米道路施工", + "道路施工", poiTypeSrcVr = R.drawable.v2x_icon_shigong_zhandao, content = "前方%s米道路施工", tts = "前方%s米道路施工" @@ -500,10 +500,10 @@ enum class EventTypeEnumNew( tts = "" ), - TYPE_VIP_IDENTIFICATION_PASS("20022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您变为绿灯", "VIP车辆优先通行,已为您变为绿灯"), - TYPE_VIP_IDENTIFICATION_EXTEND("20023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您延长绿灯", "VIP车辆优先通行,已为您延长绿灯"), - TYPE_VIP_ERROR_IDENTIFICATION("20024", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,稍后重试"), - TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); + TYPE_VIP_IDENTIFICATION_PASS("20022", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您变为绿灯", "VIP车辆优先通行,已为您变为绿灯"), + TYPE_VIP_IDENTIFICATION_EXTEND("20023", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您延长绿灯", "VIP车辆优先通行,已为您延长绿灯"), + TYPE_VIP_ERROR_IDENTIFICATION("20024", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,稍后重试"), + TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "路线推荐", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); companion object { @@ -706,6 +706,307 @@ enum class EventTypeEnumNew( } } + @JvmStatic + fun getEventTitle(poiType: String?): String{ + return when(poiType){ + //交通检查 + TRAFFIC_CHECK.poiType ->{ + TRAFFIC_CHECK.poiTypeStr + } + //封路 + ROAD_CLOSED.poiType ->{ + ROAD_CLOSED.poiTypeStr + } + //施工 + FOURS_ROAD_WORK.poiType ->{ + FOURS_ROAD_WORK.poiTypeStr + } + //道路施工 + TYPE_SOCKET_ROAD_SHIGONG.poiType ->{ + TYPE_SOCKET_ROAD_SHIGONG.poiTypeStr + } + //静止障碍物占道 + TYPE_SOCKET_ROAD_JINGZHI.poiType ->{ + TYPE_SOCKET_ROAD_JINGZHI.poiTypeStr + } + //道路事故 + TYPE_SOCKET_ROAD_SHIGU.poiType ->{ + TYPE_SOCKET_ROAD_SHIGU.poiTypeStr + } + //交通拥堵 + TYPE_SOCKET_ROAD_CONGESTION.poiType ->{ + TYPE_SOCKET_ROAD_CONGESTION.poiTypeStr + } + //道路拥堵 + FOURS_BLOCK_UP.poiType ->{ + FOURS_BLOCK_UP.poiTypeStr + } + //道路积水 + FOURS_PONDING.poiType ->{ + FOURS_PONDING.poiTypeStr + } + //浓雾 + FOURS_FOG.poiType ->{ + FOURS_FOG.poiTypeStr + } + //结冰 + FOURS_ICE.poiType ->{ + FOURS_ICE.poiTypeStr + } + //事故 + FOURS_ACCIDENT.poiType ->{ + FOURS_ACCIDENT.poiTypeStr + } + //重大事故 + FOURS_ACCIDENT_01.poiType ->{ + FOURS_ACCIDENT_01.poiTypeStr + } + //特大事故 + FOURS_ACCIDENT_02.poiType ->{ + FOURS_ACCIDENT_02.poiTypeStr + } + //较大事故 + FOURS_ACCIDENT_03.poiType ->{ + FOURS_ACCIDENT_03.poiTypeStr + } + //一般事故 + FOURS_ACCIDENT_04.poiType ->{ + FOURS_ACCIDENT_04.poiTypeStr + } + //轻微事故 + FOURS_ACCIDENT_05.poiType ->{ + FOURS_ACCIDENT_05.poiTypeStr + } + //事故 + FOURS_LIVING.poiType ->{ + FOURS_LIVING.poiTypeStr + } + //红绿灯数据 + ALERT_TRAFFIC_LIGHT_SUGGEST.poiType ->{ + ALERT_TRAFFIC_LIGHT_SUGGEST.poiTypeStr + } + //红绿灯数据 + ALERT_TRAFFIC_LIGHT_WARNING.poiType ->{ + ALERT_TRAFFIC_LIGHT_WARNING.poiTypeStr + } + //前方静止or慢速车辆报警 + ALERT_FRONT_CAR.poiType ->{ + ALERT_FRONT_CAR.poiTypeStr + } + // 故障车辆 + ALERT_CAR_TROUBLE_WARNING.poiType ->{ + ALERT_CAR_TROUBLE_WARNING.poiTypeStr + } + //VIP车辆优先通行,已为您变为绿灯 + TYPE_VIP_IDENTIFICATION_PASS.poiType ->{ + TYPE_VIP_IDENTIFICATION_PASS.poiTypeStr + } + //VIP车辆优先通行,已为您延长绿灯 + TYPE_VIP_IDENTIFICATION_EXTEND.poiType ->{ + TYPE_VIP_IDENTIFICATION_EXTEND.poiTypeStr + } + //VIP变灯请求失败 + TYPE_VIP_ERROR_IDENTIFICATION.poiType ->{ + TYPE_VIP_ERROR_IDENTIFICATION.poiTypeStr + } + //最优路线 + TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType ->{ + TYPE_OPTIMAL_ROUTE_RECOMMEND.poiTypeStr + } + //绿波通行 + TYPE_USECASE_ID_IVP_GREEN.poiType ->{ + TYPE_USECASE_ID_IVP_GREEN.poiTypeStr + } + //闯红灯预警 + TYPE_USECASE_ID_IVP_RED.poiType ->{ + TYPE_USECASE_ID_IVP_RED.poiTypeStr + } + //鬼探头类型 + GHOST_PROBE.poiType ->{ + GHOST_PROBE.poiTypeStr + } + //接管 + TAKE_OVER_EVENT.poiType ->{ + TAKE_OVER_EVENT.poiTypeStr + } + //机动车 + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType ->{ + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiTypeStr + } + //碰撞预警 + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType ->{ + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeStr + } + //碰撞预警 + TYPE_USECASE_ID_VRUCW_PERSON.poiType ->{ + TYPE_USECASE_ID_VRUCW_PERSON.poiTypeStr + } + //未知障碍物 + TYPE_ERROR_WEAKNESS.poiType ->{ + TYPE_ERROR_WEAKNESS.poiTypeStr + } + //学校 + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType ->{ + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeStr + } + //禁止停车 + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeStr + } + //超速行驶 + TYPE_USECASE_ID_SLW.poiType ->{ + TYPE_USECASE_ID_SLW.poiTypeStr + } + //拥堵 + TYPE_USECASE_ID_TJW.poiType ->{ + TYPE_USECASE_ID_TJW.poiTypeStr + } + //车辆故障 + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType ->{ + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiTypeStr + } + //道路积水 + FOURS_PONDING.poiType ->{ + FOURS_PONDING.poiTypeStr + } + //异常停车 + TYPE_USECASE_ID_ROAD_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_PARKING.poiTypeStr + } + //逆行车辆 + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType ->{ + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiTypeStr + } + //急转弯 + TYPE_ID_SHAPR_TURNS.poiType ->{ + TYPE_ID_SHAPR_TURNS.poiTypeStr + } + //桥梁 + TYPE_ID_BRIDGE.poiType ->{ + TYPE_ID_BRIDGE.poiTypeStr + } + //行人 + TYPE_ID_PEDESTRIAN.poiType ->{ + TYPE_ID_PEDESTRIAN.poiTypeStr + } + //路滑 + TYPE_ID_SLIPPERY_ROAD.poiType ->{ + TYPE_ID_SLIPPERY_ROAD.poiTypeStr + } + //隧道 + TYPE_ID_TUNNEL.poiType ->{ + TYPE_ID_TUNNEL.poiTypeStr + } + //渡轮 + TYPE_ID_FERRY.poiType ->{ + TYPE_ID_FERRY.poiTypeStr + } + //路面不平 + TYPE_ID_UNEVEN_ROAD.poiType ->{ + TYPE_ID_UNEVEN_ROAD.poiTypeStr + } + //非机动车 + TYPE_ID_NON_MOTOR_VEHICLE.poiType ->{ + TYPE_ID_NON_MOTOR_VEHICLE.poiTypeStr + } + //障碍 + TYPE_ID_OBSTACLE.poiType ->{ + TYPE_ID_OBSTACLE.poiTypeStr + } + //施工 + TYPE_FOURS_ROAD_WORK.poiType ->{ + TYPE_FOURS_ROAD_WORK.poiTypeStr + } + //车队 + TYPE_VEHICLE_QUEUE.poiType ->{ + TYPE_VEHICLE_QUEUE.poiTypeStr + } + //道路不通 + TYPE_NO_PASSING.poiType ->{ + TYPE_NO_PASSING.poiTypeStr + } + //禁止掉头 + TYPE_NO_TURNING_AROUND.poiType ->{ + TYPE_NO_TURNING_AROUND.poiTypeStr + } + //禁止停车 + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeStr + } + //禁止鸣笛 + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiTypeStr + } + //超速 + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType ->{ + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiTypeStr + } + //公交提醒 + TYPE_USECASE_ID_BUS_WARNING.poiType ->{ + TYPE_USECASE_ID_BUS_WARNING.poiTypeStr + } + //右侧变窄/车道数减少 + TYPE_USECASE_ID_NARROW_RIGHT.poiType ->{ + TYPE_USECASE_ID_NARROW_RIGHT.poiTypeStr + } + //加油站 + TYPE_USECASE_ID_GAS_STATION.poiType ->{ + TYPE_USECASE_ID_GAS_STATION.poiTypeStr + } + //学校 + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType ->{ + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeStr + } + //交通事故 + TYPE_USECASE_ID_ACCIDENT.poiType ->{ + TYPE_USECASE_ID_ACCIDENT.poiTypeStr + } + //紧急制动预警 + TYPE_USECASE_ID_EBW.poiType ->{ + TYPE_USECASE_ID_EBW.poiTypeStr + } + //前向碰撞预警 + TYPE_USECASE_ID_FCW.poiType ->{ + TYPE_USECASE_ID_FCW.poiTypeStr + } + //交叉路口碰撞预警 + TYPE_USECASE_ID_ICW.poiType ->{ + TYPE_USECASE_ID_ICW.poiTypeStr + } + //车辆失控预警 + TYPE_USECASE_ID_CLW.poiType ->{ + TYPE_USECASE_ID_CLW.poiTypeStr + } + //逆向超车预警 + TYPE_USECASE_ID_DNPW.poiType ->{ + TYPE_USECASE_ID_DNPW.poiTypeStr + } + //异常车辆提醒 + TYPE_USECASE_ID_AVW.poiType ->{ + TYPE_USECASE_ID_AVW.poiTypeStr + } + //盲区预警 + TYPE_USECASE_ID_BSW.poiType ->{ + TYPE_USECASE_ID_BSW.poiTypeStr + } + //变道预警 + TYPE_USECASE_ID_LCW.poiType ->{ + TYPE_USECASE_ID_LCW.poiTypeStr + } + //紧急车辆提醒 + TYPE_USECASE_ID_EVW.poiType ->{ + TYPE_USECASE_ID_EVW.poiTypeStr + } + //左转辅助 + TYPE_USECASE_ID_LTA.poiType ->{ + TYPE_USECASE_ID_LTA.poiTypeStr + } + else ->{ + "事件通知" + } + } + } + @JvmStatic fun getUpdateIconRes(poiType: String?): Int { return when (poiType) { From 76f6ff184002c31ec0b2a4df4f13f473af590dfe Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 6 Apr 2023 17:19:54 +0800 Subject: [PATCH 11/13] =?UTF-8?q?[2.15.0][mogo-adas]=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E8=BF=9B=E7=AB=99=E5=90=8E=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=87=BA=E7=AB=99=E9=97=AE=E9=A2=98=EF=BC=8C=E6=A1=A3=E8=BD=A6?= =?UTF-8?q?=E5=A4=84=E4=BA=8E=E8=BF=9B=E7=AB=99=E6=B5=81=E7=A8=8B=E6=97=B6?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=BF=98=E5=A4=84=E4=BA=8ESystemState.AUTO?= =?UTF-8?q?=5FPILOT=5FRUNNING=E7=8A=B6=E6=80=81=E6=89=80=E4=BB=A5=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=B0=86=E6=AD=A4=E9=99=90=E5=88=B6=E6=94=BE=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../high/common/autopilot/ability/AutopilotAbility250.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 0c459e56a6..ff336195ee 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -79,6 +79,7 @@ public class AutopilotAbility250 { } } else { SystemStatusInfo.SystemState systemState = statusInfo.getSysState(); + // 目前已知可以下发启动自驾命令的状态: SystemState.SYS_RUNNING、SystemState.PILOT_READY、SystemState.AUTO_PILOT_STARTING、SystemState.AUTO_PILOT_RUNNING if (systemState != SystemStatusInfo.SystemState.SYS_RUNNING && systemState != SystemStatusInfo.SystemState.PILOT_READY) { isAutopilotAbility = false; if (systemState == SystemStatusInfo.SystemState.SYS_STARTING) { @@ -88,11 +89,13 @@ public class AutopilotAbility250 { } else if (systemState == SystemStatusInfo.SystemState.SYS_FAULT) { unableAutopilotReason = "系统异常"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_STARTING) { - //如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态 + //TODO 如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态 isAutopilotAbility = true; //unableAutopilotReason = "正在开始自动驾驶"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_RUNNING) { - unableAutopilotReason = "自动驾驶运行中"; + //TODO 车辆进站属于未退自驾状态,此状态不进行限制,否则无法再次发下启动自驾命令 + isAutopilotAbility = true; +// unableAutopilotReason = "自动驾驶运行中"; } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_STARTING) { unableAutopilotReason = "平行驾驶启动中"; } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_RUNNING) { From ca5de5b11d9d12104ce32ac03ea810bc416e4dd9 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 7 Apr 2023 12:16:43 +0800 Subject: [PATCH 12/13] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=AE=B1=E8=BD=A6=E9=80=9F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=8B=E5=8A=A8=E8=BE=93=E5=85=A5=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/tools/AutoPilotAndCheckView.kt | 93 ++++++++++++++----- .../function/hmi/ui/utils/KeyBoardUtil.java | 8 ++ .../main/res/layout/view_auto_pilot_check.xml | 17 ++-- 3 files changed, 86 insertions(+), 32 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index 9b3d026e83..af151c2bc2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -9,8 +9,8 @@ import android.os.Process import android.util.AttributeSet import android.view.LayoutInflater import android.view.View +import android.view.View.OnTouchListener import android.widget.FrameLayout -import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo @@ -31,6 +31,7 @@ import mogo.telematics.pad.MessagePad import org.greenrobot.eventbus.EventBus import kotlin.system.exitProcess + /** * @author ChenFufeng * 设置自动驾驶速度和检测页入口 @@ -69,29 +70,44 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( @SuppressLint("ClickableViewAccessibility") private fun initView() { background = ColorDrawable(Color.parseColor("#F0151D41")) - - keyBoardUtil?.setActionListener { inputContent -> - inputContent.toIntOrNull()?.let { speed -> - when { - speed > 60 -> { - // 设置失败键盘不消失,让用户直接修改 - ToastUtils.showShort("超过最大限速值60,设置失败") - } - else -> { - // 设置自动驾驶速度 - val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) - when { - isSuccess -> { - ToastUtils.showShort("车速设置成功,立即生效") - } - else -> { - ToastUtils.showShort("设置车速失败,请启动域控制器") + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.setActionListener(object: KeyBoardUtil.ActionListener{ + override fun onComplete(inputContent: String?) { + inputContent?.toIntOrNull()?.let { speed -> + when { + speed > 60 -> { + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + } + else -> { + keyBoardUtil?.hideKeyboard() + etInputSpeed.clearFocus() + // 设置自动驾驶速度 + val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) + when { + isSuccess -> { + ToastUtils.showShort("车速设置成功,立即生效") + } + else -> { + ToastUtils.showShort("设置车速失败,请启动域控制器") + } } } } } } - } + + override fun onUpdate(inputContent: String?) { + if (inputContent != null) { + speedLimit = inputContent.toInt() + } + } + + }) + + KeyBoardUtil.hideSystemSoftKeyboard(context, etInputSpeed) ivCloseIcon.setOnClickListener { clickListener?.onClose(it) } @@ -123,15 +139,37 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } tvAcceleration.text = "每次调整车速±5km/h,点击确定生效" if (speedLimit > 0) { - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ - tvSpeed.text = "0" + etInputSpeed.setText("0") } + etInputSpeed.setOnTouchListener { _, _ -> + val curTime = System.currentTimeMillis() + if (curTime - lastTime < 1000) { + return@setOnTouchListener true + } + etInputSpeed.isFocusableInTouchMode = true + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.showKeyboard() + //滑动滚动条 + svLayout.post { + svLayout.fullScroll(View.FOCUS_DOWN) + } + if (!connectStatus) { + ToastUtils.showShort("设置车速失败,请启动域控制器") + keyBoardUtil?.hideKeyboard() + return@setOnTouchListener true + } else { + return@setOnTouchListener false + } + } ivSpeedReduce.setOnClickListener { if(speedLimit>=5){ speedLimit -= 5 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ ToastUtils.showShort("车速不能再减了") } @@ -140,7 +178,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( ivSpeedAdd.setOnClickListener { if(speedLimit<=55){ speedLimit += 5 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ ToastUtils.showShort("车速不能再加了") } @@ -148,11 +186,16 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( //速度确认 tvSureModify.setOnClickListener { + if(speedLimit>60){ + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + return@setOnClickListener + } val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speedLimit) when { isSuccess -> { //速度显示 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) ToastUtils.showShort("车速设置成功,立即生效") } else -> { @@ -230,7 +273,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } maxAcceleration = carConfigResp.maxAcceleration speedLimit = (carConfigResp.speedLimit * 3.6).toInt() - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java index 8b826a2255..b06500228f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java @@ -6,6 +6,7 @@ import android.inputmethodservice.KeyboardView; import android.os.Build; import android.text.Editable; import android.text.InputType; +import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; @@ -78,6 +79,9 @@ public class KeyBoardUtil { editable.delete(start - 1, start); } } + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; case Keyboard.KEYCODE_DONE: if (actionListener != null) { @@ -86,6 +90,9 @@ public class KeyBoardUtil { break; default: editable.insert(start, Character.toString((char) primaryCode)); + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; } } @@ -133,5 +140,6 @@ public class KeyBoardUtil { public interface ActionListener { void onComplete(String inputContent); + void onUpdate(String inputContent); } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index 6b77eb7543..86fe2cf08a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent"> - @@ -268,8 +271,8 @@ android:textColor="@android:color/white" android:textSize="42dp" android:layout_marginLeft="50dp" - app:layout_constraintTop_toTopOf="@id/tvSpeed" - app:layout_constraintBottom_toBottomOf="@id/tvSpeed" + app:layout_constraintTop_toTopOf="@id/etInputSpeed" + app:layout_constraintBottom_toBottomOf="@id/etInputSpeed" app:layout_constraintLeft_toRightOf="@id/tvUnit" tools:visibility="visible" /> From 7dad91ffd7e072ce25df58dc495017e9d64c7d2f Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 7 Apr 2023 12:36:39 +0800 Subject: [PATCH 13/13] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E7=89=88=E6=9C=AC=E5=9B=9E=E9=80=80=E5=88=B0?= =?UTF-8?q?2.11.0.12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../src/main/java/com/mogo/map/AMapViewWrapper.java | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/gradle.properties b/gradle.properties index bfcfc75374..9a78d0c850 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.6.6 MOGO_TELEMATIC_VERSION=1.4.6.6 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.12.0.6 +MAP_SDK_VERSION=2.11.0.12 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 7efafe326e..6719b666c2 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -78,7 +78,6 @@ import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptorFactory; import com.zhidaoauto.map.sdk.open.marker.Marker; import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener; import com.zhidaoauto.map.sdk.open.query.LonLatPoint; -import com.zhidaoauto.map.sdk.open.road.RoadCross; import com.zhidaoauto.map.sdk.open.road.StopLine; import com.zhidaoauto.map.sdk.open.tools.MapTools; import com.zhidaoauto.map.sdk.open.view.MapAutoView; @@ -200,7 +199,7 @@ public class AMapViewWrapper implements IMogoMapView, } @Override - public void onRoadIdInfo(@androidx.annotation.Nullable String roadId, @androidx.annotation.Nullable String laneId) { + public void onRoadIdInfo(@androidx.annotation.Nullable String roadId) { if (roadId != null && !TextUtils.isEmpty(roadId)) { // CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::" + roadId); CallerMapRoadListenerManager.INSTANCE.invokeListenersOnRoadIdGet(roadId); @@ -1106,9 +1105,4 @@ public class AMapViewWrapper implements IMogoMapView, } } - @Override - public void onRoadCrossInfo(@androidx.annotation.Nullable RoadCross roadCross) { - - } - }