diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java index fa65051d12..c21df5562b 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java @@ -45,6 +45,7 @@ public class OchBusFragment extends BaseOchFragment implements IMogoAdasOCHCallback { +public class OchBusPresenter extends Presenter implements IMogoAdasOCHCallback, Handler.Callback { private static final String TAG = "OchBusPresenter"; private static final int VEHICAL_TYPE = 10; - + private static final int MSG_REQUERY_BUS_STATION = 1001; + private static final long REQUERY_BUS_STATION_DELAY = 5000; public OchBusPresenter(OchBusFragment view) { super(view); MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasOCHCallback(this); } + private final Handler handler = new Handler(this); + private final List stationList = new ArrayList<>(); private int currentStationIndex = 0; @@ -83,18 +89,20 @@ public class OchBusPresenter extends Presenter implements IMogoA public void onError(Throwable e) { super.onError(e); Logger.e(TAG, e, "获取小巴路线图失败"); - if (mView != null) { - mView.refreshBusStations(null); - } + requeryBusStation(); +// if (mView != null) { +// mView.refreshBusStations(null); +// } } @Override public void onError(String message, int code) { super.onError(message, code); Logger.e(TAG, "获取小巴路线失败 code: " + code + " msg: " + message); - if (mView != null) { - mView.refreshBusStations(null); - } + requeryBusStation(); +// if (mView != null) { +// mView.refreshBusStations(null); +// } } }); } @@ -109,6 +117,10 @@ public class OchBusPresenter extends Presenter implements IMogoA // } } + private void requeryBusStation(){ + handler.sendEmptyMessageDelayed(MSG_REQUERY_BUS_STATION, REQUERY_BUS_STATION_DELAY); + } + public void restartAutopilot(){ MogoApisHandler.getInstance().getApis().getAdasControllerApi().aiCloudToAdasData(currentAutopilot); } @@ -207,4 +219,13 @@ public class OchBusPresenter extends Presenter implements IMogoA break; } } + + @Override + public boolean handleMessage(Message msg) { + if (msg.what == MSG_REQUERY_BUS_STATION) { + queryBusRoutes(); + return true; + } + return false; + } } diff --git a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java index 8f30a4ad98..954a57b2d7 100644 --- a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java +++ b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java @@ -93,6 +93,9 @@ public abstract class BaseOchFragment> e public void showSlidePanle(String text) { getActivity().runOnUiThread(()->{ slidePanelView.setText(text); + if (MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE) { + return; + } slidePanelView.setVisibility(View.VISIBLE); }); } @@ -106,6 +109,9 @@ public abstract class BaseOchFragment> e public void showNotice(String notice) { getActivity().runOnUiThread(()->{ tvNotice.setText(notice); + if (MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE) { + return; + } tvNotice.setVisibility(View.VISIBLE); fivNoticeHead.setVisibility(View.VISIBLE); fivNoticeHead.startAnim(); diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 9a55d634dd..d295e4d8c9 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -354,6 +354,7 @@ public class MogoADASController implements IMogoADASController { @Override public void notifyAutopilotState(AdasAIDLAutopilotStateModel autopilotStateModel) { + Logger.d(TAG, "notifyAutopilotState: " + autopilotStateModel); if (mAdasOCHCallback != null) { mAdasOCHCallback.onStateChanged(autopilotStateModel.getState(), autopilotStateModel.getReason()); }