diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 994cb543c1..61730b59bc 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -791,7 +791,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback @Override public void onSuccess(TaxiPassengerBaseRespBean data) { updateAutopilotStatus(data.code == 0); - startOrStopReadyToAutopilotoop(false); + if (data != null && data.code == 0) { + startOrStopReadyToAutopilotoop(false); + } } @Override diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 1a8a22c2e2..dae8385ecd 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -143,7 +143,10 @@ public class BaseTaxiPassengerPresenter extends Presenter{ - //开启轮询司机是否已准备好开启自动驾驶的环境 - TaxiPassengerModel.getInstance().startDriverReadyToAutopilotLoop(); mView.showOrHideStartAutopilotView(true,false); }); } @@ -195,7 +198,6 @@ public class BaseTaxiPassengerPresenter extends Presenter + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_autopilot_btn_bg_selector.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_autopilot_btn_bg_selector.xml new file mode 100644 index 0000000000..ae2eaa5ab3 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_autopilot_btn_bg_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_start_autopilot_txt_btn_bg.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_start_autopilot_txt_btn_bg.xml index f6a17ddd99..dc7ba06b43 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_start_autopilot_txt_btn_bg.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_start_autopilot_txt_btn_bg.xml @@ -1,11 +1,11 @@ - + + android:startColor="#E639699F" + android:endColor="#395EC5" /> diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_start_autopilot_view.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_start_autopilot_view.xml index e307b539cc..bf79334c4e 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_start_autopilot_view.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_start_autopilot_view.xml @@ -5,23 +5,16 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MissingDefaultResource" - android:background="@drawable/taxi_p_passenger_check_panel_bg"> - - - - - - - - - - - - - - - - + android:background="@drawable/taxi_p_passenger_start_panel_bg"> + - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml index 6e8c0e95ad..0627d9585c 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml @@ -50,6 +50,8 @@ #151937 #80141D45 + #4DFFFFFF + #FFFFFF \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/values/strings.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values/strings.xml index 3e266b4394..e3ed2949af 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/values/strings.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/values/strings.xml @@ -33,5 +33,5 @@ 删除 点击开始 - 启动中 + 启动中... \ No newline at end of file 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 232ada5499..c45090bc24 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 @@ -435,39 +435,6 @@ public class TaxiModel { }); } - //更新当前订单状态 - public void updateOCHOrderStatus(final TaxiOrderStatusEnum orderStatus) { - if (mCurrentOCHOrder == null) { - return; - } - final String orderNo = mCurrentOCHOrder.orderNo; - TaxiServiceManager.getInstance().updateOrderStatus(mContext, orderNo, - orderStatus.getCode(), new TaxiServiceCallback() { - @Override - public void onSuccess(BaseData data) { - if (null != data && 0 == data.code - && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(orderNo)) { - mCurrentOCHOrder.orderStatus = orderStatus.getCode(); - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { -// ToastUtils.showShort(code + "," + msg); - } - }); - } - // 取消当前订单 public void cancelCurrentOrder(int reasonType, String reason) { if (mCurrentOCHOrder == null) { @@ -802,9 +769,6 @@ public class TaxiModel { } public void updateAutopilotStatus(boolean isSafe){ - if(isSafe){ - ToastUtils.showLong(mContext.getResources().getString(R.string.module_och_taxi_order_choose_start_autopilot_tip)); - } if (mOrderStatusCallback != null){ mOrderStatusCallback.onDriverHasCheckedPilotCondition(isSafe); } @@ -970,26 +934,11 @@ public class TaxiModel { } if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) { - updateOCHOrderStatus(TaxiOrderStatusEnum.ArriveAtStart); + arrivedStartPoint(); return; } } - // TODO: 2021/9/12 - public void calculateTravelDistance(Location carLocation) { - if (checkCurrentOCHOrder() && mCurrentOCHOrder.endSiteGcjPoint.size() > 0) { - double endLon = mCurrentOCHOrder.endSiteGcjPoint.get(0); - double endLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); - double distance = CoordinateUtils.calculateLineDistance( - endLon, endLat, - carLocation.getLongitude(), carLocation.getLatitude()); - mCurrentOCHOrder.decreaseTravelDistance(distance); - if (mOrderStatusCallback != null && distance >= 0) { - mOrderStatusCallback.onCurrentOrderDistToEndChanged((long) distance, 0); - } - } - } - //监听网络变化,避免启动机器时无网导致无法更新订单信息 private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { @Override @@ -1061,7 +1010,16 @@ public class TaxiModel { ToastUtils.showShort("订单状态不匹配该操作!"); return; } - updateOCHOrderStatus(TaxiOrderStatusEnum.ArriveAtStart); + arrivedStartPoint(); + } + + public void setDriverConfirmCondition() { + if (mCurrentOCHOrder == null + || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { + ToastUtils.showShort("订单状态不匹配该操作!"); + return; + } + confirmAutopilotConditionByDriver(); } public void setArriveAtEndStation() { @@ -1070,19 +1028,18 @@ public class TaxiModel { ToastUtils.showShort("订单状态不匹配该操作!"); return; } - updateOCHOrderStatus(TaxiOrderStatusEnum.ArriveAtEnd); + arriveTerminal(); } /** - * 测试开始服务 + * 测试开启自动驾驶 */ public void setOnTheWayToEndStation() { -// if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); if (mCurrentOCHOrder == null || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { ToastUtils.showShort("订单状态不匹配该操作!"); } - updateOCHOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd); + startServicePilotDone(); } private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() { @@ -1109,7 +1066,6 @@ public class TaxiModel { // 当高频返回autopilot 2时,不重复调用订单状态变更 mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 -// updateOCHOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd); startServicePilotDone(); TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true, @@ -1165,7 +1121,7 @@ public class TaxiModel { if (DebugConfig.isDebug()) { // ToastUtils.showShort("到达目的地"); } - updateOCHOrderStatus(TaxiOrderStatusEnum.ArriveAtEnd); + arriveTerminal(); if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 到达目的地,置false FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; @@ -1367,6 +1323,9 @@ public class TaxiModel { , new TaxiServiceCallback() { @Override public void onSuccess(TaxiDataBaseRespBean data) { + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.UserArriveAtStart); + } } @Override @@ -1382,13 +1341,15 @@ public class TaxiModel { TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); result.lat = mLatitude; result.lon = mLongitude; - TaxiServiceManager.getInstance().updatePassengerHasBoardedStatus(mContext + TaxiServiceManager.getInstance().startServicePilotDone(mContext , mCurrentOCHOrder.orderNo , result , new TaxiServiceCallback() { @Override public void onSuccess(TaxiDataBaseRespBean data) { - + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd); + } } @Override @@ -1398,4 +1359,82 @@ public class TaxiModel { }); } + public void arrivedStartPoint(){ + if (mCurrentOCHOrder == null) return; + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiServiceManager.getInstance().arrivedStartPoint(mContext + , mCurrentOCHOrder.orderNo + , result + , new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.ArriveAtStart); + } + } + + @Override + public void onFail(int code, String msg) { + + } + }); + } + + public void arriveTerminal(){ + if (mCurrentOCHOrder == null) return; + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiServiceManager.getInstance().arriveTerminal(mContext + , mCurrentOCHOrder.orderNo + , result + , new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.ArriveAtEnd); + } + } + + @Override + public void onFail(int code, String msg) { + + } + }); + } + + public void orderCompleted(){ + if (mCurrentOCHOrder == null) return; + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiServiceManager.getInstance().orderCompleted(mContext + , mCurrentOCHOrder.orderNo + , result + , new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.JourneyCompleted); + } + } + + @Override + public void onFail(int code, String msg) { + + } + }); + } + //更新当前订单状态 + public void updateOrderStatus(final TaxiOrderStatusEnum orderStatus) { + if (mCurrentOCHOrder == null) { + return; + } + mCurrentOCHOrder.orderStatus = orderStatus.getCode(); + if (mOrderStatusCallback != null) { + mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder); + } + } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java index 11c283ef95..8c8a6a7c0e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java @@ -271,4 +271,40 @@ interface TaxiServiceApiNew { @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startServicePilot" ) Observable startServicePilotDone(@Header ("appId") String appId , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); + + /** + * 达到乘客上车点 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/arriveStartPoint" ) + Observable arrivedStartPoint(@Header ("appId") String appId + , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); + + /** + * 到达乘客目的地 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/arriveTerminal" ) + Observable arriveTerminal(@Header ("appId") String appId + , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); + + /** + * 订单完成 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/orderCompleted" ) + Observable orderCompleted(@Header ("appId") String appId + , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java index 723860bef6..ce93f197b6 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java @@ -396,6 +396,46 @@ public class TaxiServiceManager { .subscribe(getSubscribeImpl(context, callback, "startServicePilotDone")); } + public void arrivedStartPoint(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + mOCHTaxiServiceApi.arrivedStartPoint(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "arrivedStartPoint")); + + } + + public void arriveTerminal(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + mOCHTaxiServiceApi.arriveTerminal(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "arriveTerminal")); + + } + + + public void orderCompleted(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + mOCHTaxiServiceApi.orderCompleted(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "arriveTerminal")); + + } + private SubscribeImpl getSubscribeImpl( Context context, TaxiServiceCallback callback, String apiName) { return new SubscribeImpl(RequestOptions.create(context)) { 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 4ade93a02b..58b2927aef 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 @@ -112,10 +112,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().updateCarStatus(); } - // 更新当前订单状态(当前订单状态流转) - public void updateCurOrderStatus(TaxiOrderStatusEnum status) { - TaxiModel.getInstance().updateOCHOrderStatus(status); - } // 获取当前订单状态 public TaxiOrderStatusEnum getCurOrderStatus() { @@ -157,6 +153,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().queryDriverServiceData(); } + //更新订单已完成状态 + public void completeOrderService() { + TaxiModel.getInstance().orderCompleted(); + } + @Override public void onAutopilotArriveEnd() { 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 078442ea31..234c1ce94b 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 @@ -300,6 +300,8 @@ public abstract class BaseTaxiTabFragment { TaxiModel.getInstance().setArriveAtEndStation(); }); - findViewById(R.id.test_bar_on_the_way_to_end1).setOnClickListener(v -> { - TaxiModel.getInstance().confirmAutopilotConditionByDriver(); + findViewById(R.id.test_bar_start_service_confirm).setOnClickListener(v -> { + TaxiModel.getInstance().setDriverConfirmCondition(); }); findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> { -// showNotice("自动驾驶已启动,请系好安全带"); if (!isStarting){ mPresenter.startAutoPilot(false); startOrStopLoadingAnim(true); diff --git a/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml b/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml index 20277fcc9a..8b5031b651 100644 --- a/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml +++ b/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml @@ -48,12 +48,12 @@ android:text="到达上车点" android:textSize="12sp" />