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();
+ }
+ }
}