diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 771c1f74d7..740794bd48 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -89,6 +89,7 @@ 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 c21df5562b..99163a9ab7 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 @@ -108,17 +108,19 @@ public class OchBusFragment extends BaseOchFragment implements IMogoA currentAutopilot.vehicleType = VEHICAL_TYPE; Logger.d(TAG, "开启自动驾驶====" + currentAutopilot); MogoApisHandler.getInstance().getApis().getAdasControllerApi().aiCloudToAdasData(currentAutopilot); + + if (mView != null) { + mView.refreshBusStations(stationList); + } + mView.hideSlidePanel(); + mView.hideNotice(); + + if (isGoingToNextStation) { + // 为了避免恢复自动驾驶时重复的接口请求 + return; + } + isGoingToNextStation = true; + 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); + } + + @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"); + } + }); } private void refreshCurrentStation() { @@ -182,6 +217,7 @@ public class OchBusPresenter extends Presenter implements IMogoA return; } Logger.d(TAG, "单程结束===="); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().cancelAutopilot(); 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) @@ -227,43 +263,8 @@ public class OchBusPresenter extends Presenter implements IMogoA } break; case IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING: - mView.onAutopilotEnableChange(true); +// mView.onAutopilotEnableChange(true); mView.onAutopilotStatusChanged(true); - mView.hideSlidePanel(); - mView.hideNotice(); - if (mView != null) { - mView.refreshBusStations(stationList); - } - if (isGoingToNextStation) { - // 为了避免恢复自动驾驶时重复的接口请求 - return; - } - isGoingToNextStation = true; - 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); - } - - @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"); - } - }); - - break; default: mView.onAutopilotEnableChange(false); diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index da895cc89c..11f031a7e3 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -145,4 +145,6 @@ public interface IMogoADASController extends IProvider { int getAutopilotStatus(); void mockOchStatus(int state, String reason); + + void cancelAutopilot(); } 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 d295e4d8c9..74b05e2bcc 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 @@ -3,6 +3,7 @@ package com.mogo.service.impl.adas; import android.app.Application; import android.content.Context; import android.content.Intent; +import android.os.RemoteException; import android.text.TextUtils; import android.util.Log; @@ -689,4 +690,13 @@ public class MogoADASController implements IMogoADASController { } } } + + @Override + public void cancelAutopilot() { + try { + AutopilotServiceManage.getInstance().cancelAutopilot(); + } catch (RemoteException e) { + e.printStackTrace(); + } + } }