From b4805e2fb884f33a745fe743d1c66bcee75c8b28 Mon Sep 17 00:00:00 2001 From: yakunyang Date: Wed, 12 Jun 2024 16:39:58 +0800 Subject: [PATCH 01/13] =?UTF-8?q?[6.4.4]=20[fea]=20=E5=9F=8B=E7=82=B9?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/OchAutopilotAnalytics.kt | 34 +++++------------- .../logchainanalytic/OchChainLogManager.kt | 21 ++++++++--- .../utilcode/mogo/AppIdentityModeUtils.kt | 35 ++++++++++++++++--- 3 files changed, 55 insertions(+), 35 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt index 1bfc643440..f50ec26156 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt @@ -1,17 +1,17 @@ package com.mogo.och.common.module.manager.autopilot.autopilot -import android.text.TextUtils import com.mogo.commons.debug.DebugConfig -import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable @@ -19,11 +19,7 @@ abstract class OchAutopilotAnalytics { companion object{ private const val EVENT_PARAM_AUTOPILOTANALYTICS_GROUP = "start_autopilot_group" - private const val EVENT_PARAM_SN = "sn" - private const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 private const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false - private const val EVENT_PARAM_TIME = "time" - private const val EVENT_PARAM_ACCURATE_TIME = "time_accurate" private const val EVENT_PARAM_START_SUCCESS_TIME = "time_success" private const val EVENT_PARAM_START_FAIL_TIME = "time_fail" private const val EVENT_PARAM_CLICK_TIME = "time_click" @@ -47,26 +43,20 @@ abstract class OchAutopilotAnalytics { fun triggerStartAutopilotParameters(controlParameters: AutopilotControlParameters?){ - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_AUTOPILOT_PARAMETERS] = "${controlParameters.toString()}_${controlParameters?.autoPilotLine}_routeID:${controlParameters?.routeID}_routeName:${controlParameters?.routeName}" params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(params) MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_PARAMETERS, params) } fun triggerStartAutopilotParametersAck(data:String,isSuccess:Boolean){ - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_AUTOPILOT_ACK] = data params[EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS] = isSuccess params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(params) MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_ACK, params) } } @@ -102,6 +92,7 @@ abstract class OchAutopilotAnalytics { mStartAutopilotParams[EVENT_PARAM_START_FAIL_TIME] = DateTimeUtils.getTimeText(startFailDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_START_RESULT] = CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING mStartAutopilotParams[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) clearStartAutopilotParams() //清空参数数据,防止误传 } @@ -132,15 +123,11 @@ abstract class OchAutopilotAnalytics { // 自动驾驶状态变更时间 mStartAutopilotParams[EVENT_PARAM_START_SUCCESS_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) clearStartAutopilotParams() //清空参数数据,防止误传 } else { - val plateNum = AppConfigInfo.plateNumber - mStartAutopilotParams[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - mStartAutopilotParams[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum mStartAutopilotParams[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - mStartAutopilotParams[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - mStartAutopilotParams[EVENT_PARAM_ACCURATE_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) // 外部点击时间 mStartAutopilotParams[EVENT_PARAM_CLICK_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_START_NAME] = startName @@ -163,19 +150,15 @@ abstract class OchAutopilotAnalytics { fun triggerUnableStartAPReasonEvent( startName: String, endName: String, lineId: String, orderNo:String ,reason: String ) { - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - params[EVENT_PARAM_ACCURATE_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_NAME] = startName params[EVENT_PARAM_END_NAME] = endName params[EVENT_PARAM_LINE_ID] = lineId params[EVENT_PARAM_ORDER_NUMBER] = orderNo params[EVENT_PARAM_UNABLE_START_REASON] = reason params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(getEventKeyApUnableStartReason(), params) } @@ -185,11 +168,10 @@ abstract class OchAutopilotAnalytics { fun triggerClickStartAutopilotTime(triggerDate: Long) { val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE params[EVENT_PARAM_CLICK_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(getEventKeyClickStartAutopilot(), params) } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 53717d0cc5..2fed7b0092 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -5,7 +5,9 @@ import com.mogo.commons.debug.DebugConfig import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils @@ -67,12 +69,8 @@ object OchChainLogManager { d(SceneConstant.M_OCHCOMMON + TAG, title) d(SceneConstant.M_OCHCOMMON + TAG, info) if(upload) { - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params["sn"] = SharedPrefsMgr.getInstance().sn - params["env"] = DebugConfig.getNetMode() - params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum - params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + addCommonParams(params) params["info"] = title params["changeInfo"] = info patch?.let { @@ -85,4 +83,17 @@ object OchChainLogManager { } } + + fun addCommonParams(params:MutableMap){ + val plateNum = AppConfigInfo.plateNumber + params["sn"] = SharedPrefsMgr.getInstance().sn + params["env"] = DebugConfig.getNetMode() + params["product"] = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode) + params["role"] = AppIdentityModeUtils.getRole(FunctionBuildConfig.appIdentityMode) + params["cartype"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode) + params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) + } + + } \ No newline at end of file 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 a4d13bb829..cd7325d559 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 @@ -284,10 +284,7 @@ object AppIdentityModeUtils { return false } - - - - + @JvmStatic fun getProduct(appIdentityMode: String): Product { val (bussness, _, _) = getInfo(appIdentityMode) return when (bussness) { @@ -299,9 +296,39 @@ object AppIdentityModeUtils { else -> Product.NONE } } + @JvmStatic + fun getRole(appIdentityMode: String): Role { + val (_, role, _) = getInfo(appIdentityMode) + return when (role) { + DRIVER -> Role.Driver + PASSENGER -> Role.PASSENGER + else -> Role.NONE + } + } + @JvmStatic + fun getCarType(appIdentityMode: String): CarType { + val (_, _, carType) = getInfo(appIdentityMode) + return when (carType) { + B1 -> CarType.B1 + B2 -> CarType.B2 + C1 -> CarType.C1 + M1 -> CarType.M1 + T1T2 -> CarType.T1T2 + else -> CarType.NONE + } + } enum class Product { NONE, BUS, TAXI, SWEEPER, SHUTTLE, CHARTER } + + enum class Role { + NONE, Driver, PASSENGER + } + + enum class CarType { + NONE, B1, B2, C1, M1, T1T2, + } + } From 6a9e736f204df5ceeedfb6ebd3559f37d4f73fa6 Mon Sep 17 00:00:00 2001 From: yakunyang Date: Wed, 12 Jun 2024 17:12:55 +0800 Subject: [PATCH 02/13] =?UTF-8?q?[6.4.4]=20[fea]=2015m=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E5=90=AF=E5=8A=A8=E8=87=AA=E9=A9=BE=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/autopilot/OchAutopilotAnalytics.kt | 8 ++++++++ .../distance/TrajectoryAndDistanceManager.kt | 14 +++++++------- .../manager/logchainanalytic/OchChainLogManager.kt | 2 -- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt index f50ec26156..3a54ba1940 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt @@ -42,6 +42,9 @@ abstract class OchAutopilotAnalytics { private const val EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS= "start_autopilot_parameters_ack" // 启动自驾参数 + private const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15" + + fun triggerStartAutopilotParameters(controlParameters: AutopilotControlParameters?){ val params = HashMap() params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE @@ -59,6 +62,11 @@ abstract class OchAutopilotAnalytics { OchChainLogManager.addCommonParams(params) MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_ACK, params) } + fun triggerDistance2LineorStation(info: String){ + val map = hashMapOf() + map[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.writeChainLog("启动自驾距离判断",info, eventID = EVENT_KEY_INFO_AUTOPILOT_DISTANCE, patch = map) + } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt index c4b765ca1c..d5b067bbab 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt @@ -12,8 +12,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.LocationUtils import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryCache -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil @@ -662,11 +662,11 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { */ fun canStartAutopilot(lineId: Long?): String { if (lineId == null) { - OchChainLogManager.writeChainLog("启动自驾距离判断","未传轨迹ID", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("未传轨迹ID") return "请确认线路ID" } - OchChainLogManager.writeChainLog("启动自驾距离判断","条件记录:lineId:${lineId}----this.lineId:${this.lineId}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("条件记录:lineId:${lineId}----this.lineId:${this.lineId}") try { if (mRoutePoints.isNullOrEmpty()) { @@ -701,7 +701,7 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { } catch (e: Exception) { e.printStackTrace() } - OchChainLogManager.writeChainLog("启动自驾距离判断","距离站点距离:不支持的条件直接放过", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("距离站点距离:不支持的条件直接放过") return "" } @@ -719,7 +719,7 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { startStationInfo.stationPoint!!.longitude, startStationInfo.stationPoint!!.latitude ) - OchChainLogManager.writeChainLog("启动自驾距离判断","距离站点距离:${distance}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("距离站点距离:${distance}") return if (distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { "" } else { @@ -743,12 +743,12 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { currentPoint.latitude ) if(pointToLine<=OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){ - OchChainLogManager.writeChainLog("启动自驾距离判断","距离轨迹线距离:${pointToLine}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("距离轨迹线距离:${pointToLine}") return "" } } } - OchChainLogManager.writeChainLog("启动自驾距离判断","距离轨迹线超过15m,无法启动自驾", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + OchAutopilotAnalytics.triggerDistance2LineorStation("距离轨迹线超过15m,无法启动自驾") return "距离轨迹线超过15米" } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 2fed7b0092..c30a10e3df 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -29,8 +29,6 @@ object OchChainLogManager { const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg" const val EVENT_KEY_INFO_SOCKET_CONNECT = "analytics_event_och_track_screen_connect" - const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15" - fun writeChainLogNet(title: String, info: String){ writeChainLog(title,info,true,EVENT_KEY_INFO_Net) From 7ecb6e2645c064f0b44f003a9738b7627a3dd64f Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 13 Jun 2024 11:56:46 +0800 Subject: [PATCH 03/13] =?UTF-8?q?[6.4.4]=E4=BF=AE=E5=A4=8D=E5=86=B7?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=BF=9B=E5=BA=A6Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt index a53d8c1de3..f2095a67d5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.os.CountDownTimer import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout @@ -375,7 +376,7 @@ class ConnectionProcessView @JvmOverloads constructor( override fun onFinish() { if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){ //冷启动成功 - showAutopilotReadySuccessView() + autopilotReady() }else{ //展示冷启动失败视图 showAutopilotReadyFailView() From 1a1f0bd8d65932576fe2b9c42f5f8ec6bd6bb8d0 Mon Sep 17 00:00:00 2001 From: yakunyang Date: Thu, 13 Jun 2024 15:19:11 +0800 Subject: [PATCH 04/13] =?UTF-8?q?[6.4.4]=20[fea]=20UI=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OCH/common/common/src/main/res/drawable/common_error_vin.xml | 2 +- OCH/common/common/src/main/res/layout/common_checkvin_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OCH/common/common/src/main/res/drawable/common_error_vin.xml b/OCH/common/common/src/main/res/drawable/common_error_vin.xml index b1c9ea3dd1..2708761c00 100644 --- a/OCH/common/common/src/main/res/drawable/common_error_vin.xml +++ b/OCH/common/common/src/main/res/drawable/common_error_vin.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/common_checkvin_view.xml b/OCH/common/common/src/main/res/layout/common_checkvin_view.xml index ba1106404e..b4fb235d1a 100644 --- a/OCH/common/common/src/main/res/layout/common_checkvin_view.xml +++ b/OCH/common/common/src/main/res/layout/common_checkvin_view.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="@dimen/dp_939" android:layout_height="wrap_content" - android:background="@color/common_3B4577"> + android:background="@drawable/common_error_vin"> Date: Thu, 13 Jun 2024 17:42:32 +0800 Subject: [PATCH 05/13] =?UTF-8?q?[6.4.4]=20[fea]=20=E5=BA=95=E7=9B=98?= =?UTF-8?q?=E7=BB=99vin=E4=BF=A1=E6=81=AF=E6=97=B6=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/manager/device/checkvin/CheckVinManager.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt index c859036e4e..f2ccd5102e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt @@ -1,7 +1,8 @@ package com.mogo.och.common.module.manager.device.checkvin -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisDoorStateListener +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.biz.login.LoginStatusManager @@ -9,16 +10,22 @@ import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo import io.reactivex.schedulers.Schedulers +import mogo.telematics.pad.MessagePad -object CheckVinManager : IMoGoChassisDoorStateListener { +object CheckVinManager : IMoGoAutopilotCarConfigListener { private val TAG = CheckVinManager::class.java.simpleName init { BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5,::checkVin,scheduler = Schedulers.io())) + CallerAutopilotCarConfigListenerManager.addListener(TAG,this) } private var checkVinErrorDialog:CheckVinErrorDialog?=null + override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { + checkVin() + } + private fun checkVin() { LoginStatusManager.getLoginInfo()?.let {loginInfo -> val serverVin = loginInfo.vin From dd0926c1718c19d5c675a182f7c6a580b7822941 Mon Sep 17 00:00:00 2001 From: yakunyang Date: Thu, 13 Jun 2024 17:42:50 +0800 Subject: [PATCH 06/13] =?UTF-8?q?[6.4.4]=20[fea]=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/autopilot/autopilot/OchAutopilotAnalytics.kt | 2 +- .../module/manager/logchainanalytic/OchChainLogManager.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt index 3a54ba1940..e3b94e0c1b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt @@ -39,7 +39,7 @@ abstract class OchAutopilotAnalytics { private const val EVENT_KEY_START_AUTOPILOT_ACK = "event_key_och_start_autopilot_ack" private const val EVENT_PARAM_START_AUTOPILOT_ACK= "start_autopilot_parameters_ack" // 启动自驾参数 - private const val EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS= "start_autopilot_parameters_ack" // 启动自驾参数 + private const val EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS= "start_autopilot_parameters_ack_isSuccess" // 启动自驾参数 private const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15" diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index c30a10e3df..4d6b642322 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -86,9 +86,9 @@ object OchChainLogManager { val plateNum = AppConfigInfo.plateNumber params["sn"] = SharedPrefsMgr.getInstance().sn params["env"] = DebugConfig.getNetMode() - params["product"] = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode) - params["role"] = AppIdentityModeUtils.getRole(FunctionBuildConfig.appIdentityMode) - params["cartype"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode) + params["product"] = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode).name + params["role"] = AppIdentityModeUtils.getRole(FunctionBuildConfig.appIdentityMode).name + params["cartype"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) } From 6b6970e3732d0db81817beebf790c5373421892e Mon Sep 17 00:00:00 2001 From: yakunyang Date: Fri, 14 Jun 2024 10:52:43 +0800 Subject: [PATCH 07/13] =?UTF-8?q?[6.4.4]=20[fea]=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=BB=9F=E4=B8=80=E4=BF=AE=E6=94=B9=E4=B8=BA?= =?UTF-8?q?ResourcesUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bus/ui/BusSwitchLineActivity.kt | 3 +- .../passenger/ui/PM2DrivingInfoFragment.kt | 29 ++++----- .../och/charter/base/CharterBaseFragment.kt | 7 ++- .../mogo/och/taxi/ui/BaseTaxiTabFragment.java | 63 ++++++++++++------- 4 files changed, 60 insertions(+), 42 deletions(-) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt index e85c5aea90..cf4e580bc1 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt @@ -21,6 +21,7 @@ import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.R import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse +import com.mogo.och.common.module.utils.ResourcesUtils import java.util.ArrayList /** @@ -139,7 +140,7 @@ class BusSwitchLineActivity : MvpActivity } override fun onChangeLineIdSuccess() { - ToastUtils.showLong(resources.getString(R.string.bus_change_line_commit_tip_s)) + ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_change_line_commit_tip_s)) mPresenter?.queryBusRoutes() mAdapter.setOnLineItemClickListener(null) mPresenter?.removeListener() diff --git a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt index f8b2c199c6..fbc4a1686a 100644 --- a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt @@ -15,6 +15,7 @@ import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil +import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import kotlinx.android.synthetic.main.bus_p_m2_driving_info_fragment.auto_tv import kotlinx.android.synthetic.main.bus_p_m2_driving_info_fragment.clg_distance_left_time @@ -66,12 +67,12 @@ class PM2DrivingInfoFragment : true } - line_name_tv.setTextColor(resources.getColor(R.color.bus_p_m2_line_name_tv_color)) - station_name_tv.setTextColor(resources.getColor(R.color.bus_p_m2_line_name_tv_color)) + line_name_tv.setTextColor(ResourcesUtils.getColor(R.color.bus_p_m2_line_name_tv_color)) + station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.bus_p_m2_line_name_tv_color)) speed_tv.setVertrial(true) val intArrayOf = intArrayOf( - requireContext().resources.getColor(R.color.bus_p_m2_color_43cefe), - requireContext().resources.getColor(R.color.bus_p_m2_color_1466fb) + ResourcesUtils.getColor(R.color.bus_p_m2_color_43cefe), + ResourcesUtils.getColor(R.color.bus_p_m2_color_1466fb) ) speed_tv.setmColorList(intArrayOf) @@ -152,7 +153,7 @@ class PM2DrivingInfoFragment : } fun showNoTaskView(){ - line_name_tv.text = resources.getString(R.string.bus_p_m2_not_select_line_content) + line_name_tv.text = ResourcesUtils.getString(R.string.bus_p_m2_not_select_line_content) updateNoStationView() overMapView?.let { it.clearSiteMarkers() @@ -166,10 +167,10 @@ class PM2DrivingInfoFragment : } } private fun updateNoStationView(){ - station_name_tv.setTextColor(resources.getColor(R.color.bus_p_m2_next_tv_color)) - station_name_tv.text = resources.getString(R.string.bus_p_m2_empty_tv) - tv_distance.text = resources.getString(R.string.bus_p_m2_empty_remain_km) - tv_left_time.text = resources.getString(R.string.bus_p_m2_empty_remain_minute) + station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.bus_p_m2_next_tv_color)) + station_name_tv.text = ResourcesUtils.getString(R.string.bus_p_m2_empty_tv) + tv_distance.text = ResourcesUtils.getString(R.string.bus_p_m2_empty_remain_km) + tv_left_time.text = ResourcesUtils.getString(R.string.bus_p_m2_empty_remain_minute) noLineShow() } @@ -214,19 +215,19 @@ class PM2DrivingInfoFragment : fun updateStationsInfo(stations: MutableList, currentStationIndex: Int, isArrived: Boolean){ if (stations.size == 0) return if (0<= currentStationIndex && currentStationIndex?>() : flStationPanelContainer = findViewById(R.id.module_mogo_och_station_panel_container) slidePanelView = findViewById(R.id.charter_slide_panel) - slidePanelView?.setText(resources.getString(R.string.charter_back_car)) + slidePanelView?.setText(ResourcesUtils.getString(R.string.charter_back_car)) slidePanelView?.setOnSlidePanelMoveToEndListener(onSlideToEndListener) @@ -191,9 +192,9 @@ abstract class CharterBaseFragment?>() : requireActivity().runOnUiThread { module_mogo_och_arrived_tv.isEnabled = isClickable if (isClickable) { - module_mogo_och_arrived_tv.setTextColor(resources.getColor(android.R.color.white)) + module_mogo_och_arrived_tv.setTextColor(ResourcesUtils.getColor(android.R.color.white)) } else { - module_mogo_och_arrived_tv.setTextColor(resources.getColor(R.color.charter_arrived_btn_un_clickable_color)) + module_mogo_och_arrived_tv.setTextColor(ResourcesUtils.getColor(R.color.charter_arrived_btn_un_clickable_color)) } } } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index cc2bc79bea..54049cdb98 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -233,20 +233,23 @@ public abstract class BaseTaxiTabFragment { - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { - // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { + // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading + return; + } + if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { + // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false + startAutopilotDone(true); + return; + } + // 3. 其他过程直接更新 + startOrStopLoadingAnim(false); + autopilotStatusAnimchanged(status,canStart); } - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { - // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false - startAutopilotDone(true); - return; - } - // 3. 其他过程直接更新 - startOrStopLoadingAnim(false); - autopilotStatusAnimchanged(status,canStart); - }); + },UiThreadHandler.MODE.QUEUE); } public void stopAnimAndUpdateBtnStatus() { @@ -302,6 +305,9 @@ public abstract class BaseTaxiTabFragment { - flStationPanelContainer.setVisibility(View.GONE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + flStationPanelContainer.setVisibility(View.GONE); + } + },UiThreadHandler.MODE.QUEUE); } public void showPanel() { - getActivity().runOnUiThread(() -> { - flStationPanelContainer.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + flStationPanelContainer.setVisibility(View.VISIBLE); + } + },UiThreadHandler.MODE.QUEUE); } /** @@ -400,12 +412,15 @@ public abstract class BaseTaxiTabFragment { - if (tvOperationStatus == null) { - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (tvOperationStatus == null) { + return; + } + tvOperationStatus.setVisibility(visible); } - tvOperationStatus.setVisibility(visible); - }); + },UiThreadHandler.MODE.QUEUE); } protected void showAmapNaviToStationFragment(boolean isShow) { From 9cd68d8d78264998ce7c1a95ead4c55682eb2063 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 14 Jun 2024 10:59:58 +0800 Subject: [PATCH 08/13] =?UTF-8?q?[6.4.4]=E5=86=B7=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/widget/ConnectionProcessView.kt | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt index f2095a67d5..114e993a37 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt @@ -92,6 +92,7 @@ class ConnectionProcessView @JvmOverloads constructor( status: AdasConstants.IpcConnectionStatus, reason: String? ) { + Log.i(TAG,"onAutopilotIpcConnectStatusChanged status="+status.name) if(HmiBuildConfig.isShowConnectionProgressView){ if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ //域控连接成功 @@ -132,11 +133,15 @@ class ConnectionProcessView @JvmOverloads constructor( * HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用 */ override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) { + Log.i(TAG,"onAutopilotStatusRespByQuery status autoPilotReady="+status.autoPilotReady) if(HmiBuildConfig.isShowConnectionProgressView){ + Log.i(TAG,"HmiBuildConfig.isShowConnectionProgressView="+HmiBuildConfig.isShowConnectionProgressView) if(status.autoPilotReady){ + Log.i(TAG,"status.autoPilotReady 为true 冷启动成功") //冷启动成功 autopilotReady() }else{ + Log.i(TAG,"status.autoPilotReady 为false") //SSM连接成功 connectSSMSuccess() } @@ -150,11 +155,15 @@ class ConnectionProcessView @JvmOverloads constructor( * @param statusInf 数据 */ override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) { + Log.i(TAG,"onSystemStatus status autoPilotReady="+statusInf.autoPilotReady) if(HmiBuildConfig.isShowConnectionProgressView){ + Log.i(TAG,"HmiBuildConfig.isShowConnectionProgressView="+HmiBuildConfig.isShowConnectionProgressView) if(statusInf.autoPilotReady){ + Log.i(TAG,"status.autoPilotReady 为true 冷启动成功") //冷启动成功 autopilotReady() }else{ + Log.i(TAG,"status.autoPilotReady 为false") //SSM连接成功 connectSSMSuccess() } @@ -186,14 +195,16 @@ class ConnectionProcessView @JvmOverloads constructor( autopilotReadyProcess() } ssmConnectStatus = true - + autopilotReadyStatus = false } /** * 冷启动成功 */ private fun autopilotReady(){ + Log.i(TAG,"autopilotReady autopilotReadyStatus="+autopilotReadyStatus) if(!autopilotReadyStatus){ + Log.i(TAG,"展示冷启动成功View") showAutopilotReadySuccessView() //取消冷启动超时等待倒计时 autopilotReadyTimer?.cancel() @@ -252,6 +263,7 @@ class ConnectionProcessView @JvmOverloads constructor( * 展示域控连接失败视图 */ private fun showIPCConnectFailView(){ + Log.i(TAG,"展示域控连接失败视图showIPCConnectFailView") ThreadUtils.runOnUiThread { this.visibility = View.VISIBLE pbConnectionProgress.setPadding(0,0,0,0) @@ -269,6 +281,7 @@ class ConnectionProcessView @JvmOverloads constructor( * 展示SSM连接失败视图 */ private fun showSSMConnectFailView(){ + Log.i(TAG,"展示SSM连接失败视图showSSMConnectFailView") ThreadUtils.runOnUiThread { this.visibility = View.VISIBLE pbConnectionProgress.setPadding(0,0,0,0) @@ -303,8 +316,10 @@ class ConnectionProcessView @JvmOverloads constructor( * 更新进度条进度 */ private fun updateProcess(){ - currentProcess++ - pbConnectionProgress.progress = currentProcess + if(currentProcess < 100){ + currentProcess++ + pbConnectionProgress.progress = currentProcess + } } /** @@ -374,10 +389,13 @@ class ConnectionProcessView @JvmOverloads constructor( } override fun onFinish() { + Log.i(TAG,"冷启动过程 onFinish") if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){ //冷启动成功 + Log.i(TAG,"onFinish 冷启动成功") autopilotReady() }else{ + Log.i(TAG,"onFinish 展示冷启动失败视图") //展示冷启动失败视图 showAutopilotReadyFailView() } @@ -391,6 +409,7 @@ class ConnectionProcessView @JvmOverloads constructor( * 域控断连一分钟倒计时 */ private fun disconnectCountDown(){ + Log.i(TAG,"域控断连一分钟倒计时") ThreadUtils.runOnUiThread { disconnectTimer = object: CountDownTimer(RECONNECTION_TIME,RECONNECTION_TIME){ override fun onTick(millisUntilFinished: Long) { From cfb2800c7ff0920aae22d2fbf3b28be7c87cd2a0 Mon Sep 17 00:00:00 2001 From: yakunyang Date: Fri, 14 Jun 2024 11:29:46 +0800 Subject: [PATCH 09/13] =?UTF-8?q?[6.4.4]=20[fix]=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=B8=E6=9C=BA=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OchAutoPilotStatusListenerManager.kt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt index 632ac2859d..1d17ac54e1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt @@ -1,9 +1,11 @@ package com.mogo.och.common.module.manager.autopilot.autopilot import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.R import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager @@ -24,13 +26,15 @@ object OchAutoPilotStatusListenerManager : CallerBase if (oldValue != newValue) { - if(oldValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - if(newValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE){ - ToastUtils.showLong(R.string.common_change2_autopilot2_manual) - } - }else if(oldValue==IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING){ - if(newValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE){ - ToastUtils.showLong(R.string.common_change2_pxjs_manual) + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + if(oldValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + if(newValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE){ + ToastUtils.showLong(R.string.common_change2_autopilot2_manual) + } + }else if(oldValue==IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING){ + if(newValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE){ + ToastUtils.showLong(R.string.common_change2_pxjs_manual) + } } } From 756e6d8d0e8ac4b2f161131e359d1c6765f15688 Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 14 Jun 2024 16:12:42 +0800 Subject: [PATCH 10/13] =?UTF-8?q?[6.4.4][=E5=90=AF=E8=87=AA=E9=A9=BE?= =?UTF-8?q?=E6=8C=87=E5=BC=95]=20=E8=B7=AF=E7=BA=BF=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=88=96=E8=AE=A2=E5=8D=95=E7=BB=93=E6=9D=9F=E6=97=B6=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E8=BD=A8=E8=BF=B9=E4=B8=8B=E8=BD=BD=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/widget/StatusBarView.kt | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt index f0cef47ebd..ee700888f0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt @@ -9,16 +9,19 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.content.ContextCompat import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.kotlin.scope import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -27,12 +30,13 @@ import kotlinx.coroutines.Runnable import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.atomic.AtomicLong class StatusBarView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener { +) : LinearLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener, IMoGoAutopilotStatusListener { companion object { const val TAG = "StatusBarView" @@ -46,6 +50,8 @@ class StatusBarView @JvmOverloads constructor( private val rightViewList = CopyOnWriteArrayList() private val leftViewList = CopyOnWriteArrayList() + private val lineId = AtomicLong(Long.MIN_VALUE) + override fun onAttachedToWindow() { super.onAttachedToWindow() post { @@ -60,8 +66,8 @@ class StatusBarView @JvmOverloads constructor( CallerSkinModeListenerManager.addListener(TAG, this) //将状态窗口中的状态移到状态栏上 CallerDevaToolsManager.showStatusBar(context, status_container) - if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + CallerAutoPilotStatusListenerManager.addListener(TAG, this) updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context)) updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context)) routeDownloadStatusRoot?.visibility = View.GONE @@ -101,6 +107,20 @@ class StatusBarView @JvmOverloads constructor( } } + override fun onAutopilotRouteLineId(lineId: Long) { + super.onAutopilotRouteLineId(lineId) + if (lineId != this.lineId.get()) { + this.lineId.set(lineId) + Logger.d(TAG, "--- onAutopilotRouteLineId ---: $lineId") + routeDownloadStatusRoot?.scope?.launch { + Logger.d(TAG, "--- onAutopilotRouteLineId 1 ---: $lineId") + if ((routeDownloadStatusRoot?.visibility == View.VISIBLE) && AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + routeDownloadStatusRoot?.visibility = View.GONE + } + } + } + } + override fun setStatusBarDarkOrLight(light: Boolean) = if (light) { setTextColor(resources.getColor(R.color.color_2C2E30)) } else { @@ -158,6 +178,9 @@ class StatusBarView @JvmOverloads constructor( CallerSkinModeListenerManager.removeListener(TAG) CallerDevaToolsManager.hideStatusBar() CallerDevaToolsManager.unRegisterRouteDownloadListener(TAG) + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + CallerAutoPilotStatusListenerManager.removeListener(TAG) + } } } From 33ef830289f9e728331d780e09e931be1da39b5b Mon Sep 17 00:00:00 2001 From: yakunyang Date: Fri, 14 Jun 2024 18:20:23 +0800 Subject: [PATCH 11/13] =?UTF-8?q?[6.4.4]=20[fea]=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=B7=BB=E5=8A=A0tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/module/network/OchCommonSubscribeImpl.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt index 1f008ebf20..f656eb1d1b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt @@ -18,10 +18,12 @@ class OchCommonSubscribeImpl( const val TAG = "OchCommonSubscribeImpl" } + private var tag:Long = System.currentTimeMillis() + init { CallerLogger.e("$flavorTag$TAG", "$apiName: 去请求()") if(writeLog) { - OchChainLogManager.writeChainLogNet("接口:${apiName}", "去请求") + OchChainLogManager.writeChainLogNet("接口:${apiName}_${tag}", "去请求") } } @@ -29,7 +31,7 @@ class OchCommonSubscribeImpl( super.onSuccess(o) CallerLogger.d("$flavorTag$TAG", "$apiName: onSuccess() ${o.msg}") if(writeLog) { - OchChainLogManager.writeChainLogNet("接口:${apiName}", "请求成功:${o}") + OchChainLogManager.writeChainLogNet("接口:${apiName}_${tag}", "请求成功:${o}") } callback?.onSuccess(o) } @@ -38,7 +40,7 @@ class OchCommonSubscribeImpl( super.onError(e) CallerLogger.e("$flavorTag$TAG", "$apiName: onError() ${e.message}") if(writeLog) { - OchChainLogManager.writeChainLogNet("接口:${apiName}", "请求失败:${e.message}") + OchChainLogManager.writeChainLogNet("接口:${apiName}_${tag}", "请求失败:${e.message}") } callback?.onError("$apiName: onError() ${e.message}") callback?.onError() @@ -49,7 +51,7 @@ class OchCommonSubscribeImpl( CallerLogger.e("$flavorTag$TAG", "$apiName: onError() code = $code; message = $message") if(writeLog) { OchChainLogManager.writeChainLogNet( - "接口:${apiName}", + "接口:${apiName}_${tag}", "请求失败: onError() code = $code; message = $message\"" ) } From 56e0c9c579bc85ac00be5454fafa5cd6ad2ae1cd Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 14 Jun 2024 18:23:01 +0800 Subject: [PATCH 12/13] =?UTF-8?q?[6.4.4]=E4=BF=AE=E5=A4=8D=E5=81=B6?= =?UTF-8?q?=E7=8E=B0=E8=BF=9B=E5=BA=A6=E6=9D=A1=E6=98=BE=E7=A4=BA=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E5=BC=82=E5=B8=B8=E3=80=81=E5=8E=BB=E9=99=A4Log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/widget/ConnectionProcessView.kt | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt index 114e993a37..0dbd45eb70 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt @@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.os.CountDownTimer import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout @@ -92,7 +91,6 @@ class ConnectionProcessView @JvmOverloads constructor( status: AdasConstants.IpcConnectionStatus, reason: String? ) { - Log.i(TAG,"onAutopilotIpcConnectStatusChanged status="+status.name) if(HmiBuildConfig.isShowConnectionProgressView){ if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ //域控连接成功 @@ -133,15 +131,11 @@ class ConnectionProcessView @JvmOverloads constructor( * HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用 */ override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) { - Log.i(TAG,"onAutopilotStatusRespByQuery status autoPilotReady="+status.autoPilotReady) if(HmiBuildConfig.isShowConnectionProgressView){ - Log.i(TAG,"HmiBuildConfig.isShowConnectionProgressView="+HmiBuildConfig.isShowConnectionProgressView) if(status.autoPilotReady){ - Log.i(TAG,"status.autoPilotReady 为true 冷启动成功") //冷启动成功 autopilotReady() }else{ - Log.i(TAG,"status.autoPilotReady 为false") //SSM连接成功 connectSSMSuccess() } @@ -155,15 +149,11 @@ class ConnectionProcessView @JvmOverloads constructor( * @param statusInf 数据 */ override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) { - Log.i(TAG,"onSystemStatus status autoPilotReady="+statusInf.autoPilotReady) if(HmiBuildConfig.isShowConnectionProgressView){ - Log.i(TAG,"HmiBuildConfig.isShowConnectionProgressView="+HmiBuildConfig.isShowConnectionProgressView) if(statusInf.autoPilotReady){ - Log.i(TAG,"status.autoPilotReady 为true 冷启动成功") //冷启动成功 autopilotReady() }else{ - Log.i(TAG,"status.autoPilotReady 为false") //SSM连接成功 connectSSMSuccess() } @@ -202,9 +192,7 @@ class ConnectionProcessView @JvmOverloads constructor( * 冷启动成功 */ private fun autopilotReady(){ - Log.i(TAG,"autopilotReady autopilotReadyStatus="+autopilotReadyStatus) if(!autopilotReadyStatus){ - Log.i(TAG,"展示冷启动成功View") showAutopilotReadySuccessView() //取消冷启动超时等待倒计时 autopilotReadyTimer?.cancel() @@ -263,7 +251,6 @@ class ConnectionProcessView @JvmOverloads constructor( * 展示域控连接失败视图 */ private fun showIPCConnectFailView(){ - Log.i(TAG,"展示域控连接失败视图showIPCConnectFailView") ThreadUtils.runOnUiThread { this.visibility = View.VISIBLE pbConnectionProgress.setPadding(0,0,0,0) @@ -281,7 +268,6 @@ class ConnectionProcessView @JvmOverloads constructor( * 展示SSM连接失败视图 */ private fun showSSMConnectFailView(){ - Log.i(TAG,"展示SSM连接失败视图showSSMConnectFailView") ThreadUtils.runOnUiThread { this.visibility = View.VISIBLE pbConnectionProgress.setPadding(0,0,0,0) @@ -318,7 +304,9 @@ class ConnectionProcessView @JvmOverloads constructor( private fun updateProcess(){ if(currentProcess < 100){ currentProcess++ - pbConnectionProgress.progress = currentProcess + if(pbConnectionProgress.progress < currentProcess){ + pbConnectionProgress.progress = currentProcess + } } } @@ -389,13 +377,10 @@ class ConnectionProcessView @JvmOverloads constructor( } override fun onFinish() { - Log.i(TAG,"冷启动过程 onFinish") if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){ //冷启动成功 - Log.i(TAG,"onFinish 冷启动成功") autopilotReady() }else{ - Log.i(TAG,"onFinish 展示冷启动失败视图") //展示冷启动失败视图 showAutopilotReadyFailView() } @@ -409,7 +394,6 @@ class ConnectionProcessView @JvmOverloads constructor( * 域控断连一分钟倒计时 */ private fun disconnectCountDown(){ - Log.i(TAG,"域控断连一分钟倒计时") ThreadUtils.runOnUiThread { disconnectTimer = object: CountDownTimer(RECONNECTION_TIME,RECONNECTION_TIME){ override fun onTick(millisUntilFinished: Long) { From 65c7b01eb10c7d0f67c14d2b00f65394d3b9120a Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 14 Jun 2024 20:04:19 +0800 Subject: [PATCH 13/13] =?UTF-8?q?[6.4.4]=E8=B0=83=E6=95=B4=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=BC=82=E5=B8=B8=E5=90=8E=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=BC=82=E5=B8=B8=E4=B9=8B=E5=90=8E=E5=A6=82?= =?UTF-8?q?=E5=86=8D=E6=AC=A1=E8=BF=9E=E6=8E=A5=E6=AD=A3=E5=B8=B8=E5=88=99?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=AD=A3=E5=B8=B8=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/widget/ConnectionProcessView.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt index 0dbd45eb70..ba45156c35 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ConnectionProcessView.kt @@ -106,6 +106,10 @@ class ConnectionProcessView @JvmOverloads constructor( isDisconnectTimeout = false disconnectTimer?.cancel() disconnectTimer = null + //如果之前IPC连接状态为未连接且当前显示异常状态,则改为显示域控连接成功状态 + if(!ipcConnectStatus && clConnectionTip.visibility == View.VISIBLE){ + connectIPCSuccess() + } }else{ //域控连接失败 if(ipcConnectStatus && disconnectTimer == null && !isDisconnectTimeout){ @@ -132,7 +136,7 @@ class ConnectionProcessView @JvmOverloads constructor( */ override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) { if(HmiBuildConfig.isShowConnectionProgressView){ - if(status.autoPilotReady){ + if(status.hasAutoPilotReady() && status.autoPilotReady){ //冷启动成功 autopilotReady() }else{ @@ -150,7 +154,7 @@ class ConnectionProcessView @JvmOverloads constructor( */ override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) { if(HmiBuildConfig.isShowConnectionProgressView){ - if(statusInf.autoPilotReady){ + if(statusInf.hasAutoPilotReady() && statusInf.autoPilotReady){ //冷启动成功 autopilotReady() }else{ @@ -167,6 +171,7 @@ class ConnectionProcessView @JvmOverloads constructor( if(!ipcConnectStatus){ showIPCConnectSuccessView() //开始连接SSM超时等待倒计时 + currentProcess = 25 connectSSMProcess() } ipcConnectStatus = true @@ -182,6 +187,7 @@ class ConnectionProcessView @JvmOverloads constructor( //取消连接SSM超时等待倒计时 connectSSMTimer?.cancel() //开始启动冷启动等待倒计时 + currentProcess = 50 autopilotReadyProcess() } ssmConnectStatus = true @@ -357,6 +363,8 @@ class ConnectionProcessView @JvmOverloads constructor( } override fun onFinish() { + //将SSM连接状态置为false + ssmConnectStatus = false //展示连接SSM失败视图 showSSMConnectFailView() } @@ -377,6 +385,8 @@ class ConnectionProcessView @JvmOverloads constructor( } override fun onFinish() { + //将冷启动状态置为false + autopilotReadyStatus = false if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){ //冷启动成功 autopilotReady()