diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java new file mode 100644 index 0000000000..186fc0b5f4 --- /dev/null +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java @@ -0,0 +1,11 @@ +package com.mogo.och.bus.callback; + +/** + * Created on 2021/9/8 + * + * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等) + */ +public interface IBusADASStatusCallback { + //自驾返回失败 + void onStartAdasFailure(); +} diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index e9f730bdb4..a780ffb698 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -385,14 +385,18 @@ public abstract class BaseBusTabFragment return; } if (isAnimateRunning){ - stopAutopilotAnimation(); - updateAutopilotStatus(autopilotStatus); + stopAnimAndUpdateBtnStatus(); }else { setAutopilotBtnStatus(autopilotStatus); } } + public void stopAnimAndUpdateBtnStatus(){ + stopAutopilotAnimation(); + updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); + } + /** * 隐藏【自动驾驶】按钮 */ 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 5cfb30cd24..1212ebb74a 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 @@ -40,6 +40,7 @@ import com.mogo.och.bus.bean.BusRoutesResponse; import com.mogo.och.bus.bean.BusRoutesResult; import com.mogo.och.bus.bean.BusStationBean; import com.mogo.och.bus.bean.WriteOffPassenger; +import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; import com.mogo.och.bus.callback.IPassengerCallback; import com.mogo.och.bus.callback.IRefreshBusStationsCallback; @@ -105,6 +106,7 @@ public class BusOrderModel { private ISlidePannelHideCallback slidePanelHideCallback; private IBusControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 private IPassengerCallback mPassengerCallback; //乘客核销回调 + private IBusADASStatusCallback mADASStatusCallback; List points = new ArrayList<>();//全路径信息 @@ -203,6 +205,10 @@ public class BusOrderModel { }); } + public void setAdasStatusCallback(IBusADASStatusCallback callback){ + this.mADASStatusCallback = callback; + } + public void setRefreshBusStationsCallback(IRefreshBusStationsCallback callback){ this.refreshBusStationsCallback = callback; } @@ -325,6 +331,10 @@ public class BusOrderModel { @Override public void onStartAutopilotFailure(@NonNull String startFailedMessage) { BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEvent(startFailedMessage); + if (mADASStatusCallback != null){ + CallerLogger.INSTANCE.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); + mADASStatusCallback.onStartAdasFailure(); + } } }; diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 0ed6ee5692..c4d1be3b85 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -21,6 +21,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusStationBean; import com.mogo.och.bus.bean.WriteOffPassenger; +import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; import com.mogo.och.bus.callback.IPassengerCallback; import com.mogo.och.bus.callback.IRefreshBusStationsCallback; @@ -51,7 +52,7 @@ import system_master.SystemStatusInfo; */ public class BusPresenter extends Presenter implements IRefreshBusStationsCallback, ISlidePannelHideCallback - , IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IPassengerCallback { + , IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IPassengerCallback, IBusADASStatusCallback { private static final String TAG = "BusPresenter"; @@ -86,6 +87,7 @@ public class BusPresenter extends Presenter BusOrderModel.getInstance().setSlidePanelHideCallback(this); BusOrderModel.getInstance().setControllerStatusCallback(this); BusOrderModel.getInstance().setPassengerCallback(this); + BusOrderModel.getInstance().setAdasStatusCallback(this); } public void releaseListener() { @@ -93,6 +95,7 @@ public class BusPresenter extends Presenter BusOrderModel.getInstance().setSlidePanelHideCallback(null); BusOrderModel.getInstance().setControllerStatusCallback(null); BusOrderModel.getInstance().setPassengerCallback(null); + BusOrderModel.getInstance().setAdasStatusCallback(null); OCHAdasAbilityManager.getInstance().release(); } @@ -311,4 +314,9 @@ public class BusPresenter extends Presenter VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3); } } + + @Override + public void onStartAdasFailure() { + runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); + } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index 9ef69dc1ad..33d7fead37 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -108,12 +108,12 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo @Override public void onAutopilotStatistics(@Nullable AutopilotStatistics statistics) { - if (statistics == null || statistics.failedMessage == null) return; - Logger.d(TAG, "failedMessage= " + statistics.failedMessage.getMsg()); + if (statistics == null) return; + Logger.d(TAG, "AutopilotStatistics= " + statistics.status); if (failureCallback != null && 1 == statistics.status){ startFailedMessage = statistics.failedMessage.getMsg(); failureCallback.onStartAutopilotFailure(startFailedMessage); - Logger.d(TAG, "startFailedMessage= " + startFailedMessage); + Logger.d(TAG, "statistics-startFailedMessage= " + startFailedMessage); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java index 7d89fd4718..278829580f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java @@ -20,4 +20,7 @@ public interface ITaxiADASStatusCallback { //人机共驾 void onManMachineCoDriving(); + + //自驾返回失败 + void onStartAdasFailure(); } 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 0927b9b0d6..764bff6369 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 @@ -1017,6 +1017,10 @@ public class TaxiModel { @Override public void onStartAutopilotFailure(@NonNull String startFailedMessage) { TaxiAnalyticsManager.getInstance().triggerStartAutopilotFailureEvent(startFailedMessage); + if (mADASStatusCallback != null){ + CallerLogger.INSTANCE.e(M_TAXI + TAG, "mAdasStartFailureListener = "+startFailedMessage); + mADASStatusCallback.onStartAdasFailure(); + } } }; 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 f28f7bbb59..94dcdc28d2 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 @@ -226,6 +226,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING; } + @Override + public void onStartAdasFailure() { + runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); + } + @Override public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) { runOnUIThread(() -> mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum)); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index 0d204d7ac5..8dc6ad1bab 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -354,19 +354,15 @@ public abstract class BaseTaxiTabFragment1 -// AIAssist.getInstance(getContext()).speakTTSVoice("已进入人工驾驶模式"); - } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == status) { - // 2->0 -// AIAssist.getInstance(getContext()).speakTTSVoice("自动驾驶已停止,请人工接管"); - } - } mPrevAPStatus = status; }); } + public void stopAnimAndUpdateBtnStatus(){ + startOrStopLoadingAnim(false); + startAutopilotDone(false); + } + public void onManMachineCoDriving(int manMachineCoDriving){ if (mPrevAPStatus != manMachineCoDriving){ autopilotStatusAnimchanged(manMachineCoDriving);