diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt index 9beee80214..b75ef88c4c 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt @@ -65,6 +65,9 @@ class BusConst { const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false + // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾 + const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason" + const val EVENT_PARAM_UNABLE_START_REASON = "unable_start_reason"; /** * 订单起终点Marker类型 diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index b77cc12df7..058019a8a9 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -532,6 +532,7 @@ public class BusOrderModel { if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()){ ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); + triggerUnableStartAPReasonEvent(); return; } @@ -976,6 +977,17 @@ public class BusOrderModel { currentStation.getName(), nextStation.getName(), currentLineId); } + public void triggerUnableStartAPReasonEvent() { + if (stationList == null || backgroundCurrentStationIndex >= stationList.size()-1) { + return; + } + BusStationBean currentStation = stationList.get( backgroundCurrentStationIndex); + BusStationBean nextStation = stationList.get( backgroundCurrentStationIndex +1); + BusAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( + currentStation.getName(), nextStation.getName(), currentLineId, + OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); + } + public BusRoutesResult getBusRoutesResult() { return busRoutesResult; } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java index 915070fad4..63d749bf3c 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java @@ -79,4 +79,31 @@ public class BusAnalyticsManager { UiThreadHandler.postDelayed(startAutopilotRunnable, BusConst.LOOP_PERIOD_15S); } } + + /** + * 触发"无法开启自驾已知异常"埋点 + * @param startName + * @param endName + * @param lineId + */ + public void triggerUnableStartAPReasonEvent(String startName, String endName, int lineId, + String reason) { + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); + String dateTime = DateTimeUtils.getTimeText( + System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); + + HashMap params = new HashMap<>(); + + params.put(BusConst.EVENT_PARAM_SN, sn); + params.put(BusConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); + params.put(BusConst.EVENT_PARAM_ENV_ONLINE, + DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); + params.put(BusConst.EVENT_PARAM_TIME, dateTime); + params.put(BusConst.EVENT_PARAM_START_NAME, startName); + params.put(BusConst.EVENT_PARAM_END_NAME, endName); + params.put(BusConst.EVENT_PARAM_LINE_ID, lineId); + params.put(BusConst.EVENT_PARAM_UNABLE_START_REASON, reason); + AnalyticsManager.INSTANCE.track(BusConst.EVENT_KEY_AP_UNABLE_START_REASON, params); + } } 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 2a399bb339..ae074c74fe 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 @@ -67,6 +67,9 @@ class TaxiConst { const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false + // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾 + const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_taxi_ap_unable_start_reason" + const val EVENT_PARAM_UNABLE_START_REASON = "unable_start_reason"; // 实时计算当前剩余里程和时间 间隔 2秒 const val LOOP_CALCULATEROUTE_2S = 2 * 1000L 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 b6ba11596d..8357be1f2b 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 @@ -809,6 +809,7 @@ public class TaxiModel { } if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()){ if (FunctionBuildConfig.isDemoMode) { + CallerLogger.INSTANCE.d(M_TAXI + TAG, "setIPCDemoMode:false"); CallerAutoPilotManager.INSTANCE.setIPCDemoMode(false); } @@ -883,6 +884,9 @@ public class TaxiModel { if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()){ ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); + TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo, + OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); return; } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java index 2434a7fcec..83eecfc45d 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java @@ -620,6 +620,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment public void onCurrentOrderCancelDone() { //去除起终点 + saveOrderState = -1; if (mCurrentOrder != null){ setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,mCurrentOrder.startSitePoint,R.raw.star_marker); setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,mCurrentOrder.endSitePoint,R.raw.end_marker); 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 797a79d5e6..c1d843dc6e 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 @@ -79,4 +79,31 @@ public class TaxiAnalyticsManager { UiThreadHandler.postDelayed(startAutopilotRunnable, TaxiConst.LOOP_PERIOD_15S); } } + + /** + * 触发"无法开启自驾已知异常"埋点 + * @param startName + * @param endName + * @param orderNo + */ + public void triggerUnableStartAPReasonEvent(String startName, String endName, String orderNo, + String reason) { + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); + String dateTime = DateTimeUtils.getTimeText( + System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); + + HashMap params = new HashMap<>(); + + params.put(TaxiConst.EVENT_PARAM_SN, sn); + params.put(TaxiConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); + params.put(TaxiConst.EVENT_PARAM_ENV_ONLINE, + DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); + params.put(TaxiConst.EVENT_PARAM_TIME, dateTime); + params.put(TaxiConst.EVENT_PARAM_START_NAME, startName); + params.put(TaxiConst.EVENT_PARAM_END_NAME, endName); + params.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); + params.put(TaxiConst.EVENT_PARAM_UNABLE_START_REASON, reason); + AnalyticsManager.INSTANCE.track(TaxiConst.EVENT_KEY_AP_UNABLE_START_REASON, params); + } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index a6cc679a5f..2561d020c1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -107,8 +107,24 @@ internal object BadCaseManager : LifecycleEventObserver { if(ClickUtils.isFastClick()){ if(NetworkUtils.isConnected()){ if(BadCaseConfig.dockerVersion!=null){ - val caseListDialog = CaseListDialog(activity) - caseListDialog.show() + //兼容老MAP版本 + if(BadCaseConfig.dockerVersion!!.contains("2.3.0") + || BadCaseConfig.dockerVersion!!.contains("2.4.0") + || BadCaseConfig.dockerVersion!!.contains("2.5.0") + || BadCaseConfig.dockerVersion!!.contains("2.6.0") + || BadCaseConfig.dockerVersion!!.contains("2.8.0")){ + val initiativeBadCaseWindow = InitiativeBadCaseWindow(activity) + initiativeBadCaseWindow.setClickListener(object: InitiativeBadCaseWindow.ClickListener{ + override fun closeWindow() { + initiativeBadCaseWindow.hideFloatWindow() + } + + }) + initiativeBadCaseWindow.showFloatWindow(null) + }else{ + val caseListDialog = CaseListDialog(activity) + caseListDialog.show() + } }else{ ToastUtils.showShort("工控机连接状态异常") } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt index 8d3f361326..cbdaa3df24 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt @@ -174,19 +174,27 @@ internal class BadCaseConfigView @JvmOverloads constructor( override fun onAutopilotRecordConfig(config: MessagePad.RecordDataConfig) { super.onAutopilotRecordConfig(config) ThreadUtils.runOnUiThread { - config.recordTypesList.iterator().forEach { - if (it.id != 99){ - val topicList = ArrayList() - it.topicsList.iterator().forEach { - topicList.add(TopicEntity(it,true,false)) + if(BadCaseConfig.dockerVersion!!.contains("2.3.0") + || BadCaseConfig.dockerVersion!!.contains("2.4.0") + || BadCaseConfig.dockerVersion!!.contains("2.5.0") + || BadCaseConfig.dockerVersion!!.contains("2.6.0") + || BadCaseConfig.dockerVersion!!.contains("2.8.0")){ + rvTemplate.visibility = View.GONE + }else{ + config.recordTypesList.iterator().forEach { + if (it.id != 99){ + val topicList = ArrayList() + it.topicsList.iterator().forEach { + topicList.add(TopicEntity(it,true,false)) + } + recordTypesList.add(RecordTypeEntity(it.id,it.desc,topicList)) } - recordTypesList.add(RecordTypeEntity(it.id,it.desc,topicList)) } - } - if(recordTypesList.size>1){ - rvTemplate.visibility = View.VISIBLE - recordTemplateAdapter?.setData(recordTypesList) - recordTemplateAdapter?.notifyDataSetChanged() + if(recordTypesList.size>1){ + rvTemplate.visibility = View.VISIBLE + recordTemplateAdapter?.setData(recordTypesList) + recordTemplateAdapter?.notifyDataSetChanged() + } } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java index afbfbbbac8..c9f0686c77 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java @@ -167,17 +167,17 @@ public class CaseTopicListDialog extends Dialog implements IMoGoAutopilotRecordL BadCaseConfig.customTopicList.addAll(addTopicList); } addTopicList.clear(); + recordType.getTopicsList().removeAll(allTopicList); dismiss(); }else{ ToastUtils.showShort("Topic设置失败"); } } - - }); tvCancel.setOnClickListener(v -> { - dismiss(); + recordType.getTopicsList().removeAll(allTopicList); + dismiss(); }); } @@ -185,11 +185,13 @@ public class CaseTopicListDialog extends Dialog implements IMoGoAutopilotRecordL @Override public void onAutopilotRecordConfig(MessagePad.RecordDataConfig config) { ThreadUtils.runOnUiThread(() -> { + Log.i("houyanli","AllTopicsCount="+config.getAllTopicsCount()); if(config.getAllTopicsCount()>0){ for(int index=0;index