diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java index 75275f631f..acf2f2a626 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java @@ -169,13 +169,36 @@ public class OchBusPresenter extends Presenter implements IMogoA Logger.e(TAG, "index out of station list"); return; } - // 始发站改为Stoped,其他站改为Idle - stationList.get(currentStationIndex).setIsCurrentSite(STATION_STATUS_IDLE); - currentStationIndex = 0; - stationList.get(currentStationIndex).setIsCurrentSite(STATION_STATUS_STOPED); - if (mView != null) { - mView.refreshBusStations(stationList); - } + RequestBody request = RequestBody.create(MediaType.get("application/json"), GsonUtil.jsonFromObject(new OchBusLeaveStationRequest(Utils.getSn(), stationList.get(currentStationIndex).getSiteId()))); + MogoApisHandler.getInstance().getApis().getNetworkApi() + .create(IOchBusApiService.class, HostConst.OCH_DOMAIN) + .leaveStation(request).subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) { + @Override + public void onSuccess(BaseData o) { + super.onSuccess(o); + // 始发站改为Stoped,其他站改为Idle + stationList.get(currentStationIndex).setIsCurrentSite(STATION_STATUS_IDLE); + currentStationIndex = 0; + stationList.get(currentStationIndex).setIsCurrentSite(STATION_STATUS_STOPED); + if (mView != null) { + mView.refreshBusStations(stationList); + } + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + Logger.d(TAG, "leave station error: " + message); + } + + @Override + public void onError(Throwable e) { + super.onError(e); + Logger.e(TAG,e,"leave station exception"); + } + }); } @Override @@ -186,16 +209,24 @@ public class OchBusPresenter extends Presenter implements IMogoA mView.onAutopilotStatusChanged(false); break; case IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING: - mView.onAutopilotEnableChange(true); - mView.onAutopilotStatusChanged(true); - mView.hideSlidePanel(); - mView.hideNotice(); RequestBody request = RequestBody.create(MediaType.get("application/json"), GsonUtil.jsonFromObject(new OchBusLeaveStationRequest(Utils.getSn(), stationList.get(currentStationIndex).getSiteId()))); MogoApisHandler.getInstance().getApis().getNetworkApi() .create(IOchBusApiService.class, HostConst.OCH_DOMAIN) .leaveStation(request).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) { + @Override + public void onSuccess(BaseData o) { + super.onSuccess(o); + mView.onAutopilotEnableChange(true); + mView.onAutopilotStatusChanged(true); + mView.hideSlidePanel(); + mView.hideNotice(); + if (mView != null) { + mView.refreshBusStations(stationList); + } + } + @Override public void onError(String message, int code) { super.onError(message, code); @@ -210,9 +241,7 @@ public class OchBusPresenter extends Presenter implements IMogoA }); - if (mView != null) { - mView.refreshBusStations(stationList); - } + break; default: mView.onAutopilotEnableChange(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 954a57b2d7..d14cc82b95 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 @@ -66,6 +66,8 @@ public abstract class BaseOchFragment> e } }); + onAutopilotStatusChanged(MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING); + checkCallView(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isCallViewShow()); MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("Och", StatusDescriptor.CALL_VIEW, callViewListener);