From e891bcf9065c41c742dc3ae6c301967bcc82a929 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 21 Jul 2022 15:56:13 +0800 Subject: [PATCH] =?UTF-8?q?[282=20taxi-d=20taxi-p]=201=E3=80=81=E8=A7=A3?= =?UTF-8?q?=E8=97=95=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E6=B5=81=E8=BD=AC?= =?UTF-8?q?=E5=92=8C=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/TaxiPassengerModel.java | 6 +- .../com/mogo/och/taxi/model/TaxiModel.java | 58 +++++++++---------- .../och/taxi/presenter/TaxiPresenter.java | 5 +- .../com/mogo/och/taxi/ui/TaxiFragment.java | 6 +- .../och/taxi/utils/TaxiAnalyticsManager.java | 6 +- 5 files changed, 40 insertions(+), 41 deletions(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 1b1fec85e7..56286e88ff 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -872,9 +872,8 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback return; } - if (mCurrentOCHOrder.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()) { - ToastUtils.showShort("当前订单状态异常!"); - return; + if (mCurrentOCHOrder.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()){ + startServicePilotDone(); } double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0); @@ -903,6 +902,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); + TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); } 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 1c5aa3d454..3f672cc3b6 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 @@ -115,6 +115,8 @@ public class TaxiModel { private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter:订单变更 + private volatile boolean isRestartAutopilot = false; + private List mRoutePoints = new ArrayList<>(); private double mLongitude, mLatitude; @@ -787,7 +789,7 @@ public class TaxiModel { new TaxiServiceCallback() { @Override public void onSuccess(TaxiDataBaseRespBean data) { - if (data != null && data.code == 0 && data.data.equals(true)) + if (data != null && data.code == 0) updateAutopilotStatus(data.data.equals(true)); } @@ -840,6 +842,7 @@ public class TaxiModel { mCurrentOCHOrder = null; TaxiTrajectoryManager.getInstance().syncTrajectoryInfo(); SharedPrefsMgr.getInstance(mContext).remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER); + isRestartAutopilot = false; if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 取消或订单已完成时,置false FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; @@ -860,9 +863,7 @@ public class TaxiModel { /** * 以当前订单为基础,开启自动驾驶 - * - * @param isRestart 开启自动驾驶 - */ + **/ @ChainLog( linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT, linkCode = CHAIN_LINK_ADAS, @@ -871,20 +872,27 @@ public class TaxiModel { paramIndexes = {-1}, // clientPkFileName = "sn" ) - public void startAutoPilot(boolean isRestart) { + public void startAutoPilot() { if (!checkCurrentOCHOrder()) { CallerLogger.INSTANCE.e(M_TAXI + TAG, "no order or order is empty."); ToastUtils.showShort("当前订单不存在或异常!"); return; } - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()) { // TODO: 2021/11/28 工控机存在刚开始状态为0,但是可以开启变为2,工控机解决前不显示此toast // ToastUtils.showShort("自动驾驶状态为不可用!"); } + //点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩 + if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()){ + startServicePilotDone(); + isRestartAutopilot = false; + }else { + isRestartAutopilot = true; + } + double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0); double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1); double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0); @@ -907,13 +915,9 @@ public class TaxiModel { CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); - TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestart, false, + TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); - if (DebugConfig.isDebug()) { - // ToastUtils.showShort("Start autopilot!"); - } - // TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除 // OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" ); } @@ -1080,29 +1084,21 @@ public class TaxiModel { if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); if (mCurrentOCHOrder != null - && getCurOrderStatus() == TaxiOrderStatusEnum.UserArriveAtStart - && state != mPrevAPStatus) { - // 当高频返回autopilot 2时,不重复调用订单状态变更 - mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 + && TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus){ + if (state != mPrevAPStatus) { + // 当高频返回autopilot 2时,不重复调用订单状态变更 + mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 - startServicePilotDone(); + TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true, + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); - TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); - - if (FunctionBuildConfig.isDemoMode) { - // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - CallerAutoPilotManager.INSTANCE.setDemoMode(true); - CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"); + if (FunctionBuildConfig.isDemoMode) { + // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true + FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; + CallerAutoPilotManager.INSTANCE.setDemoMode(true); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"); + } } - } else if (mCurrentOCHOrder != null - && getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd - && state != mPrevAPStatus) { - mPrevAPStatus = state; - // 接管后再次启动成功埋点 - TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(true, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { mPrevAPStatus = state; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index f40200dc4c..3f2cdbd2ca 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -87,10 +87,9 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS /** * 开启自动驾驶 - * @param isRestart 是否是接管后重启自动驾驶 */ - public void startAutoPilot(boolean isRestart) { - TaxiModel.getInstance().startAutoPilot(isRestart); + public void startAutoPilot() { + TaxiModel.getInstance().startAutoPilot(); } /** diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index e7c81a0a9d..43db7243a5 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -63,7 +63,7 @@ public class TaxiFragment extends BaseTaxiTabFragment { if (!isStarting){ - mPresenter.startAutoPilot(false); + mPresenter.startAutoPilot(); startOrStopLoadingAnim(true); } TaxiModel.getInstance().setOnTheWayToEndStation(); 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 d0a2808a54..797a79d5e6 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 @@ -1,17 +1,19 @@ package com.mogo.och.taxi.utils; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.text.TextUtils; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.app.AppConfigInfo; import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.taxi.constant.TaxiConst; import java.util.HashMap; -import java.util.Map; /** * OCH Taxi埋点工具 @@ -63,6 +65,8 @@ public class TaxiAnalyticsManager { mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_END_NAME, endName); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); +// CallerLogger.INSTANCE.d(M_TAXI + "埋点==","restart = "+restart+", send= "+send); + if (send) { // 开启成功,上报埋点 if (startAutopilotRunnable != null &&