diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerStartReqBean.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerStartReqBean.java new file mode 100644 index 0000000000..741c9c2b69 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerStartReqBean.java @@ -0,0 +1,23 @@ +package com.mogo.och.taxi.passenger.bean; + +/** + * Created by pangfan on 2021/8/19 + * 司机端准备好或者乘客已验证上车请求参数 + */ +public class TaxiPassengerStartReqBean { + + public String orderNo; + public String sn; + public TaxiPassengerStartReqBean.Result loc; + + public static class Result { + public Double lat; + public Double lon; + } + + public TaxiPassengerStartReqBean(String sn, String orderNo, TaxiPassengerStartReqBean.Result point) { + this.sn = sn; + this.orderNo = orderNo; + this.loc = point; + } +} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java index 4f82627a0c..9d147d1ca4 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java @@ -22,4 +22,6 @@ public interface IOCHTaxiPassengerOrderStatusCallback { //当前路名字 void onCurrentRoadName(String currentRoadName); + // 司机已确认开启自动驾驶环境 + void onDriverHasCheckedPilotCondition(boolean isBoarded); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt index a17c9add6c..d3270cb212 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt @@ -42,5 +42,21 @@ class TaxiPassengerConst { //实时查询订单剩余时间 和 剩余里程 轮询间隔2s const val LOOP_CALCULATEROUTE_2S = 2 * 1000L + + // 开始服务启动自动驾驶等待时间(埋点上传) + const val LOOP_PERIOD_15S = 15 * 1000L + + // 埋点key:接管后点击'自动驾驶'按钮启动 + const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_taxi_restart_autopilot" + // 埋点key:开始服务开启自动驾驶(成功/失败) + const val EVENT_KEY_START_SERVICE = "event_key_och_taxi_start_service" + const val EVENT_PARAM_SN = "sn" + const val EVENT_PARAM_TIME = "time" + const val EVENT_PARAM_START_NAME = "start_name" + const val EVENT_PARAM_END_NAME = "end_name" + const val EVENT_PARAM_ORDER_NUMBER = "order_num" + const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false + const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 + const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false } } \ No newline at end of file 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 07f7366656..b7335cac04 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 @@ -14,12 +14,13 @@ import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.v2x.LimitingVelocityListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; import com.mogo.eagle.core.function.call.v2x.CallLimitingVelocityListenerManager; @@ -32,11 +33,13 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.module.common.MogoApisHandler; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; +import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; +import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerAutopilotPlanningCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; @@ -50,6 +53,7 @@ import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceCallback; import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager; import com.mogo.aicloud.services.socket.IMogoLifecycleListener; +import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; @@ -69,7 +73,6 @@ import io.reactivex.plugins.RxJavaPlugins; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; /** @@ -157,31 +160,31 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback public void accept(Throwable e) { if (e instanceof UndeliverableException) { e = e.getCause(); - CallerLogger.INSTANCE.d(M_TAXI + TAG, "UndeliverableException"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "UndeliverableException"); } if ((e instanceof IOException)) {// // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.INSTANCE.d(M_TAXI + TAG, "IOException"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "IOException"); return; } if (e instanceof InterruptedException) { // fine, some blocking code was interrupted by a dispose call - CallerLogger.INSTANCE.d(M_TAXI + TAG, "InterruptedException"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "InterruptedException"); return; } if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { // that's likely a bug in the application - CallerLogger.INSTANCE.d(M_TAXI + TAG, "NullPointerException or IllegalArgumentException"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "NullPointerException or IllegalArgumentException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } if (e instanceof IllegalStateException) { // that's a bug in RxJava or in a custom operator - CallerLogger.INSTANCE.d(M_TAXI + TAG, "IllegalStateException"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "IllegalStateException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } - CallerLogger.INSTANCE.d(M_TAXI + TAG,"Undeliverable exception"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"Undeliverable exception"); } }); @@ -504,11 +507,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); if (mCurrentOCHOrder != null - && getCurOrderStatus() == TaxiPassengerOrderStatusEnum.ArriveAtStart + && getCurOrderStatus() == TaxiPassengerOrderStatusEnum.UserArriveAtStart && state != mPrevAPStatus) { // 当高频返回autopilot 2时,不重复调用订单状态变更 mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 -// updateOCHOrderStatus(OrderStatusEnum.OnTheWayToEndStation); + startServicePilotDone(); } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { mPrevAPStatus = state; @@ -596,9 +599,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback */ public void startOrStopRouteAndWipe(boolean isStart){ if (isStart){ - TaxiPassengerModelLoopManager.getInstance().startOrStopRouteAndWipe(); + TaxiPassengerModelLoopManager.getInstance().startRouteAndWipe(); }else { - TaxiPassengerModelLoopManager.getInstance().stopOrStopRouteAndWipe(); + TaxiPassengerModelLoopManager.getInstance().stopRouteAndWipe(); } } @@ -781,6 +784,102 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback }); } + public void loopQueryPilotStatus(){ + if (mCurrentOCHOrder == null) return; + TaxiPassengerServiceManager.getInstance().queryPilotStatus(mContext, mCurrentOCHOrder.orderNo, + new TaxiPassengerServiceCallback() { + @Override + public void onSuccess(TaxiPassengerBaseRespBean data) { + if (data != null && data.code == 0 && data.data.equals(true)) { + updateAutopilotStatus(true); + startOrStopReadyToAutopilotoop(false); + } + } + + @Override + public void onFail(int code, String msg) { + updateAutopilotStatus(false); + } + }); + } + + public void updateAutopilotStatus(boolean isBoarded){ + if (mOrderStatusCallbackMap.size() > 0) { + for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ + callback.onDriverHasCheckedPilotCondition(isBoarded); + } + } + } + + public void startDriverReadyToAutopilotLoop(){ + if (NetworkUtils.isConnected(mContext)) { + startOrStopReadyToAutopilotoop(true); + } + } + + public void startOrStopReadyToAutopilotoop(boolean isStart) { + if (isStart){ + TaxiPassengerModelLoopManager.getInstance().startReadyToAutopilot(); + }else { + TaxiPassengerModelLoopManager.getInstance().stopReadyToAutopilot(); + } + } + + public void startServicePilotDone(){ + if (mCurrentOCHOrder == null) return; + TaxiPassengerStartReqBean.Result result = new TaxiPassengerStartReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiPassengerServiceManager.getInstance().startServicePilotDone(mContext, + mCurrentOCHOrder.orderNo, result, + new TaxiPassengerServiceCallback(){ + + @Override + public void onSuccess(TaxiPassengerBaseRespBean data) { + + } + + @Override + public void onFail(int code, String msg) { + ToastUtils.showShort(msg); + } + }); + } + + public void startAutopilot() { + if (!checkCurrentOCHOrder()) { + CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "no order or order is empty."); + ToastUtils.showShort("当前订单不存在或异常!"); + return; + } + + if (mCurrentOCHOrder.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()) { + ToastUtils.showShort("当前订单状态异常!"); + return; + } + + double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0); + double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1); + double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0); + double endWgsLat = mCurrentOCHOrder.endSitePoint.get(1); + + AutopilotControlParameters parameters = new AutopilotControlParameters(); + parameters.vehicleType = mCurrentOCHOrder.businessType; + parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.startSiteAddr); // 起点名称拼音首字母大写:科学城B区2号门(KXCBQ2HM) + parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM) + parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon); + parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon); + CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "start autopilot with parameter: %s" + , GsonUtil.jsonFromObject(parameters) + + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); + + TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false, + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + } + + private void runOnUIThread(Runnable executor) { if (executor == null) { return; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java index da3b5e5f48..30be0829b1 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java @@ -32,12 +32,34 @@ public class TaxiPassengerModelLoopManager { private Disposable mInAndWaitServiceDisposable; //进行中、待服务订单列表轮询 private Disposable mQueryOrderRemainingDisposable; //心跳轮询 private Disposable mRouteWipeDisposable; //轨迹擦除 + private Disposable mReadyToAutopilotDisposable; //轨迹擦除 - public void startOrStopRouteAndWipe() { + public void startReadyToAutopilot() { + if (mReadyToAutopilotDisposable != null && !mReadyToAutopilotDisposable.isDisposed()) { + return; + } + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startReadyToAutopilot()"); + mReadyToAutopilotDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, + TaxiPassengerConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) + .map((aLong -> aLong + 1)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(aLong -> TaxiPassengerModel.getInstance().loopQueryPilotStatus()); + } + + public void stopReadyToAutopilot() { + if (mReadyToAutopilotDisposable != null) { + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopReadyToAutopilot()"); + mReadyToAutopilotDisposable.dispose(); + mReadyToAutopilotDisposable = null; + } + } + + public void startRouteAndWipe() { if (mRouteWipeDisposable != null && !mRouteWipeDisposable.isDisposed()) { return; } - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startOrStopRouteWipe()"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startRouteAndWipe()"); mRouteWipeDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, TaxiPassengerConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -46,9 +68,9 @@ public class TaxiPassengerModelLoopManager { .subscribe(aLong -> TaxiPassengerModel.getInstance().loopRouteAndWipe()); } - public void stopOrStopRouteAndWipe() { + public void stopRouteAndWipe() { if (mRouteWipeDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopOrStopRouteWipe()"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopRouteAndWipe()"); mRouteWipeDisposable.dispose(); mRouteWipeDisposable = null; } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java index a8e84f6b69..6dbbb3046d 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java @@ -7,6 +7,7 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; +import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; import io.reactivex.Observable; import retrofit2.http.Body; @@ -85,4 +86,27 @@ interface TaxiPassengerServiceApi { @POST( "/autopilot-car-hailing/evaluation/vehicle/taxi/passenger/add" ) Observable arrivedAndScore(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerScoreUpdateOrderReqBean data); + /** + * 查询司机是否已确认可开启自动驾驶 + * @param appId + * @param ticket + * @param orderNo + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @GET( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/pilot/status" ) + Observable queryPilotStatus(@Header ("appId") String appId + , @Header("ticket") String ticket,@Query("orderNo") String orderNo); + + /** + * 乘客屏启动自动驾驶成功 + * @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/startServicePilot" ) + Observable startServicePilotDone(@Header ("appId") String appId + , @Header("ticket") String ticket,@Body TaxiPassengerStartReqBean data); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java index d5349b69ed..f0bb1e881d 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java @@ -20,6 +20,7 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; +import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; import com.mogo.commons.debug.DebugConfig; @@ -167,6 +168,28 @@ public class TaxiPassengerServiceManager { ,new TaxiPassengerScoreUpdateOrderReqBean(orderNo,star)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus")); + .subscribe(getSubscribeImpl(context, callback, "arrivedAndScore")); + } + + public void queryPilotStatus(Context context, String orderNo + ,TaxiPassengerServiceCallback callback){ + mOCHTaxiServiceApi.queryPilotStatus( + MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,orderNo) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "queryPilotStatus")); + } + + public void startServicePilotDone(Context context,String orderNo,TaxiPassengerStartReqBean.Result loc + ,TaxiPassengerServiceCallback callback){ + mOCHTaxiServiceApi.startServicePilotDone(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiPassengerStartReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context,callback,"startServicePilotDone")); } } 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 44d635ab52..24d7ed5468 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 @@ -141,19 +141,28 @@ public class BaseTaxiPassengerPresenter extends Presenter{ + CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"UserArriveAtStart"); + mView.showOrHideStartAutopilotView(true,false); + }); + //开启轮询司机是否已准备好开启自动驾驶的环境 + TaxiPassengerModel.getInstance().startDriverReadyToAutopilotLoop(); } if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ -// mView.showOrHideStartAutopilotView(false); + runOnUIThread(() ->{ + mView.showOrHideServingOrderFragment(true); + mView.showOrHideStartAutopilotView(false,false); + }); + TaxiPassengerModel.getInstance().startOrStopReadyToAutopilotoop(false); } // 30 用户到达上车点 并通过了手机号后四位验证 // 40 服务中 @@ -181,7 +200,6 @@ public class BaseTaxiPassengerPresenter extends Presenter mView.showArrivedEndLayout2Thank(aBoolean)); } + /** + * 开启自动驾驶 + */ + public void startAutopilot(){ + TaxiPassengerModel.getInstance().startAutopilot(); + } + } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java index 15b2472c79..28bc751b01 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java @@ -120,6 +120,11 @@ public class TaxiPassengerServingOrderPresenter extends Presenter mView.onCurrentRoadName(currentRoadName)); } + @Override + public void onDriverHasCheckedPilotCondition(boolean isBoarded) { + + } + @Override public void onVRModeChanged(boolean isVRMode) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java index 08214a7499..76d1716330 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java @@ -1,8 +1,10 @@ package com.mogo.och.taxi.passenger.ui; +import android.animation.ObjectAnimator; import android.os.Handler; import android.os.Looper; import android.view.View; +import android.view.animation.LinearInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -152,6 +154,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment { -// if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { -// // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading -// return; -// } -// if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status -// && mPrevAPStatus != status) { -// // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false -// startAutopilotDone(true); -// return; -// } + if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { + // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading + return; + } + if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status + && mPrevAPStatus != status) { + // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false + if ( mStartAutopilotView != null && mStartAutopilotView.get() != null){ + mStartAutopilotView.get().startOrStopLoadingAnim(false); + } + } // 3. 其他过程直接更新 if (mPrevAPStatus != status){ autopilotStatusAnimchanged(status); } -// if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == mPrevAPStatus) { -// if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) { -// // 2->1 -//// AIAssist.getInstance(getContext()).speakTTSVoice("已进入人工驾驶模式"); -// } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == status) { -// // 2->0 -//// AIAssist.getInstance(getContext()).speakTTSVoice("自动驾驶已停止,请人工接管"); -// } -// } mPrevAPStatus = status; }); } @@ -276,8 +271,6 @@ public class TaxiPassengerBaseFragment extends MvpFragment(new TaxiPassengerStartAutopilotView(getContext())); - } - OverlayViewUtils.showOverlayView(getActivity(),mStartAutopilotView.get()); - mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(this); - mStartAutopilotView.get().updateStartAutopilotBtnStatus(isClickable); - }else { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null){ - return; - } - mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(null); - OverlayViewUtils.dismissOverlayView(mStartAutopilotView.get()); +// if (isShow){ +// if (mStartAutopilotView == null || mStartAutopilotView.get() == null){ +// mStartAutopilotView = new WeakReference<>(new TaxiPassengerStartAutopilotView(getContext())); +// mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(this); +// } +// OverlayViewUtils.showOverlayView(getActivity(),mStartAutopilotView.get()); +// updateStartAutopilotBtnStatus(isClickable); +// }else { +// if (mStartAutopilotView == null || mStartAutopilotView.get() == null){ +// return; +// } +// mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(null); +// OverlayViewUtils.dismissOverlayView(mStartAutopilotView.get()); +// } + } + + public void updateStartAutopilotBtnStatus(boolean isClickable){ + if (mStartAutopilotView == null || mStartAutopilotView.get() == null){ + return; } + mStartAutopilotView.get().updateStartAutopilotBtnStatus(isClickable); } /** @@ -383,6 +383,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment mStartAutopilotParams = new HashMap<>(); + + private Runnable startAutopilotRunnable = () -> { + // 15s内未开启,上报失败埋点 + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT, false); + AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + }; + + /** + * 触发'开启自动驾驶'埋点流程 + * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 + * @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动) + * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) + */ + public void triggerStartAutopilotEvent( + boolean restart, boolean send, String startName, String endName, String orderNo) { + mStartAutopilotKey = restart ? + TaxiPassengerConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiPassengerConst.EVENT_KEY_START_SERVICE; + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); + String dateTime = DateTimeUtils.getTimeText( + System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); + + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_SN, sn); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE, + DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_TIME, dateTime); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_NAME, startName); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_END_NAME, endName); + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER, orderNo); + + if (send) { + // 开启成功,上报埋点 + if (startAutopilotRunnable != null && + UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + UiThreadHandler.removeCallbacks(startAutopilotRunnable); + } + mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT, true); + AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + } else { + UiThreadHandler.postDelayed(startAutopilotRunnable, TaxiPassengerConst.LOOP_PERIOD_15S); + } + } +} diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_ic_autopilot_loading.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_ic_autopilot_loading.png new file mode 100644 index 0000000000..a71cf9a4f9 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_ic_autopilot_loading.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_passenger_start_panel_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_passenger_start_panel_bg.png new file mode 100644 index 0000000000..7121f26751 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/taxi_p_passenger_start_panel_bg.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_ic_autopilot_loading.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_ic_autopilot_loading.png new file mode 100644 index 0000000000..a71cf9a4f9 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_ic_autopilot_loading.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png new file mode 100644 index 0000000000..7121f26751 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml new file mode 100644 index 0000000000..cdd2d4d24a --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png new file mode 100644 index 0000000000..f989ccf060 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png new file mode 100644 index 0000000000..cb1d58d997 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png new file mode 100644 index 0000000000..6f7458fc19 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png new file mode 100644 index 0000000000..c9bf2d690f Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png new file mode 100644 index 0000000000..1265d4c5d4 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png new file mode 100644 index 0000000000..e3c2a48509 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png new file mode 100644 index 0000000000..a14cc77e7c Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png new file mode 100644 index 0000000000..7371fb9b6c Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png new file mode 100644 index 0000000000..a26aec4c5d Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png new file mode 100644 index 0000000000..771aa42537 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png new file mode 100644 index 0000000000..2ac02ea932 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png new file mode 100644 index 0000000000..0a1bceebac Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png new file mode 100644 index 0000000000..c948a78044 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png new file mode 100644 index 0000000000..52cc47f30f Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png new file mode 100644 index 0000000000..3900fce374 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png new file mode 100644 index 0000000000..1c61941897 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png new file mode 100644 index 0000000000..8816ff0b08 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png new file mode 100644 index 0000000000..931b999880 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png new file mode 100644 index 0000000000..fa3baea429 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png new file mode 100644 index 0000000000..ca624ff290 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png new file mode 100644 index 0000000000..4928a6f675 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png new file mode 100644 index 0000000000..7d968c90e0 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png new file mode 100644 index 0000000000..07c248bdaa Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png new file mode 100644 index 0000000000..6299225fd1 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png new file mode 100644 index 0000000000..ae62fbc190 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png new file mode 100644 index 0000000000..48cf8e68d0 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png new file mode 100644 index 0000000000..994ddc6433 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png new file mode 100644 index 0000000000..6060955dc2 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png new file mode 100644 index 0000000000..16752cf677 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png new file mode 100644 index 0000000000..234dd480f2 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png new file mode 100644 index 0000000000..cb25229fc2 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png new file mode 100644 index 0000000000..63e94ba87e Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png new file mode 100644 index 0000000000..683527f781 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png new file mode 100644 index 0000000000..3a7d10ca3f Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png new file mode 100644 index 0000000000..a05d419bff Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png new file mode 100644 index 0000000000..0d545995fa Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png new file mode 100644 index 0000000000..cc0e1fc0ea Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png new file mode 100644 index 0000000000..c66fe3def9 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png new file mode 100644 index 0000000000..8ad0957ff7 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png new file mode 100644 index 0000000000..ad1eff3472 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png new file mode 100644 index 0000000000..387a65d4c6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png new file mode 100644 index 0000000000..510d2c7473 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png new file mode 100644 index 0000000000..7eaa141321 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png new file mode 100644 index 0000000000..6c82a2ce88 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png new file mode 100644 index 0000000000..0d8bf94fd6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png new file mode 100644 index 0000000000..1824507d21 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png new file mode 100644 index 0000000000..6c56dbed45 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png new file mode 100644 index 0000000000..7957eb7734 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png new file mode 100644 index 0000000000..b143b054ac Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png new file mode 100644 index 0000000000..9a91eddddc Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png new file mode 100644 index 0000000000..e20e3665b9 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png new file mode 100644 index 0000000000..57581f8876 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png new file mode 100644 index 0000000000..e4561cda7c Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png new file mode 100644 index 0000000000..01b205627b Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png new file mode 100644 index 0000000000..42abd3cce6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png new file mode 100644 index 0000000000..1e5173c825 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png new file mode 100644 index 0000000000..4954af5c7d Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png new file mode 100644 index 0000000000..23a161a001 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png new file mode 100644 index 0000000000..f1c4d5be16 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png new file mode 100644 index 0000000000..1cac3df4d2 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png new file mode 100644 index 0000000000..0274a42730 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png new file mode 100644 index 0000000000..d169b35037 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png new file mode 100644 index 0000000000..da6dbb7177 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png new file mode 100644 index 0000000000..fb69912cf6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png new file mode 100644 index 0000000000..4dbd138756 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png new file mode 100644 index 0000000000..a7b28ec2ac Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png new file mode 100644 index 0000000000..830a996357 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png new file mode 100644 index 0000000000..c5f256094d Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png new file mode 100644 index 0000000000..e0a9774dc7 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png new file mode 100644 index 0000000000..69ba8b259f Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png new file mode 100644 index 0000000000..0e6f42a772 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png new file mode 100644 index 0000000000..2d9473618c Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png new file mode 100644 index 0000000000..0ce282af24 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png new file mode 100644 index 0000000000..f4670bc002 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png new file mode 100644 index 0000000000..56ad547bbd Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png new file mode 100755 index 0000000000..383fd3ce6a Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png new file mode 100755 index 0000000000..9017b26f03 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png new file mode 100755 index 0000000000..485d79cc9c Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png new file mode 100755 index 0000000000..283b069fcf Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png new file mode 100755 index 0000000000..9690363efc Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png new file mode 100755 index 0000000000..d066263bce Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png new file mode 100755 index 0000000000..de9763c559 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png new file mode 100755 index 0000000000..bcab58b3a9 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png new file mode 100755 index 0000000000..9c5f0994d3 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png new file mode 100755 index 0000000000..b543a650cd Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png new file mode 100755 index 0000000000..e51ae88287 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png new file mode 100755 index 0000000000..426caaa5d6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png new file mode 100755 index 0000000000..64cbc675c6 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png new file mode 100755 index 0000000000..6f272fa759 Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/starting_anmi_flow.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/starting_anmi_flow.xml new file mode 100644 index 0000000000..5f6badea0b --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/starting_anmi_flow.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + \ 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..6e6e5b6729 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,12 @@ - + + + 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 c24b844553..10fe0a34e8 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,34 +5,28 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MissingDefaultResource" - android:background="@drawable/taxi_p_passenger_check_panel_bg"> - - + + app:layout_constraintTop_toTopOf="parent" + /> - - + android:clickable="false" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintBottom_toBottomOf="parent"/> \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/values-sw320dp/dimens.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values-sw320dp/dimens.xml index e7b95cf0a7..5b26b8687b 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/values-sw320dp/dimens.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/values-sw320dp/dimens.xml @@ -62,7 +62,7 @@ 34px 28px - 60px - 560px - 158px + 52px + 1000px + 500px \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/values-xhdpi-2560x1440/dimens.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values-xhdpi-2560x1440/dimens.xml index 48ed2067f1..b1e2c1dd14 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/values-xhdpi-2560x1440/dimens.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/values-xhdpi-2560x1440/dimens.xml @@ -125,8 +125,8 @@ 34px 28px - 60px - 560px - 158px + 52px + 1000px + 500px \ 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/dimens.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values/dimens.xml index 50b5ce589b..a453e6d3b3 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/values/dimens.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/values/dimens.xml @@ -120,7 +120,7 @@ 34px 28px - 60px - 560px - 158px + 52px + 1000px + 500px \ 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 b5043ad377..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,4 +33,5 @@ 删除 点击开始 + 启动中... \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java deleted file mode 100644 index 91045acfc2..0000000000 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 验证手机号后四位同时流转订单状态 - */ -public class TaxiCheckPhoneUpdateOrderReqBean { - - public String orderNo; - public String phone; - - public TaxiCheckPhoneUpdateOrderReqBean(String orderNo, String phone) { - this.orderNo = orderNo; - this.phone = phone; - } -} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java similarity index 75% rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java rename to OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java index 4a4c0da7b1..8d6ca6d4df 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java @@ -7,6 +7,6 @@ import com.mogo.eagle.core.data.BaseData; * * 查询订单返回数据结构 */ -public class TaxiCheckPhoneBaseRespBean extends BaseData { +public class TaxiDataBaseRespBean extends BaseData { public Object data; } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java new file mode 100644 index 0000000000..5bb888fcc9 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java @@ -0,0 +1,23 @@ +package com.mogo.och.taxi.bean; + +/** + * Created by pangfan on 2021/8/19 + * 司机端准备好或者乘客已验证上车请求参数 + */ +public class TaxiOrPassengerReadyReqBean { + + public String orderNo; + public String sn; + public TaxiOrPassengerReadyReqBean.Result loc; + + public static class Result { + public Double lat; + public Double lon; + } + + public TaxiOrPassengerReadyReqBean(String sn, String orderNo, TaxiOrPassengerReadyReqBean.Result point) { + this.sn = sn; + this.orderNo = orderNo; + this.loc = point; + } +} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java index b4dd23a2eb..d10920b8d1 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java @@ -45,4 +45,7 @@ public interface ITaxiOrderStatusCallback { // 未抢到预约单 void onGrabOrderFailed(OrderQueryRespBean.Result order); + + // 司机已确认开启自动驾驶环境 + void onDriverHasCheckedPilotCondition(boolean isSafe); } 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 79ab714604..ef85f1b00f 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 @@ -17,7 +17,6 @@ import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.cloud.commons.utils.CoordinateUtils; -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; @@ -31,7 +30,6 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListen import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; -import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.map.navi.IMogoCarLocationChangedListener2; @@ -50,7 +48,8 @@ import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean; import com.mogo.och.taxi.bean.OrdersListQueryRespBean; import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean; import com.mogo.och.taxi.bean.QueryOrderRouteResp; -import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean; +import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; +import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; import com.mogo.och.taxi.callback.ITaxiCarStatusCallback; import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; @@ -77,11 +76,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.exceptions.UndeliverableException; import io.reactivex.functions.Consumer; import io.reactivex.plugins.RxJavaPlugins; -import io.reactivex.schedulers.Schedulers; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; @@ -183,12 +180,11 @@ public class TaxiModel { Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } - CallerLogger.INSTANCE.d(M_TAXI + TAG,"Undeliverable exception"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "Undeliverable exception"); } }); if (NetworkUtils.isConnected(mContext)) { -// startOrStopOrderLoop(mOCHCarStatus == 1); queryCarStatus(); } } @@ -266,14 +262,15 @@ public class TaxiModel { //更新view CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + mOCHCarStatus); startOrStopOrderLoop(mOCHCarStatus == 1); + queryAutopilotStatus(mOCHCarStatus == 1); String role = ""; - if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose){ + if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) { role = TaxiConst.DEMO_USER; - }else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose){ + } else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) { role = TaxiConst.TEST_USER; } if (mCarStatusCallback != null) { - mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1 , role); + mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1, role); } } @@ -283,7 +280,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } // queryCarStatus(); @@ -318,7 +315,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -438,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) { @@ -496,7 +460,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -525,7 +489,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -579,7 +543,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -602,10 +566,10 @@ public class TaxiModel { @Override public void onSuccess(OrdersNewBookingQueryRespBean data) { if (data != null && data.code == 0 - && data.data != null && data.data.orders !=null + && data.data != null && data.data.orders != null && data.data.orders.size() > 0) { // 本地无新到单,且本次新到单id与上次收到的新单id不同时:显示本次新到单 - if (mNewBookingOrder == null ) { + if (mNewBookingOrder == null) { for (String orderNo : data.data.orders) { if (!mPrevOrderNo.equals(orderNo)) { queryNewBookingContent(orderNo); @@ -673,7 +637,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -767,7 +731,7 @@ public class TaxiModel { public void onError() { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - }else { + } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } } @@ -779,6 +743,60 @@ public class TaxiModel { }); } + /** + * 司机端确认可开始自动驾驶 + */ + public void confirmAutopilotConditionByDriver() { + if (mCurrentOCHOrder == null) return; + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiServiceManager.getInstance().confirmAutopilotConditionByDriver(mContext, + mCurrentOCHOrder.orderNo, + result, + new TaxiServiceCallback(){ + + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + updateAutopilotStatus(data.code == 0); + } + + @Override + public void onFail(int code, String msg) { + updateAutopilotStatus(false); + } + }); + } + + public void updateAutopilotStatus(boolean isSafe){ + if (mOrderStatusCallback != null){ + mOrderStatusCallback.onDriverHasCheckedPilotCondition(isSafe); + } + } + + public void queryAutopilotStatus(boolean isStart){ + if (isStart){ + queryAutopilotStatus(); + } + } + + public void queryAutopilotStatus(){ + if (mCurrentOCHOrder == null) return; + TaxiServiceManager.getInstance().queryAutopilotStatus(mContext, mCurrentOCHOrder.orderNo, + new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + if (data != null && data.code == 0 && data.data.equals(true)) + updateAutopilotStatus(data.data.equals(true)); + } + + @Override + public void onFail(int code, String msg) { + updateAutopilotStatus(false); + } + }); + } + // 取消当前新到预约单 public void cancelNewBookingOrder() { mNewBookingOrder = null; @@ -837,6 +855,7 @@ public class TaxiModel { /** * 以当前订单为基础,开启自动驾驶 + * * @param isRestart 开启自动驾驶 */ @ChainLog( @@ -921,9 +940,6 @@ public class TaxiModel { } CallerLogger.INSTANCE.i(M_TAXI + TAG, "judgeStartStation() distance = " + distance); -// if (mOrderStatusCallback != null && distance >= 0) { -// mOrderStatusCallback.onCurrentOrderDistToStartChanged((long) distance, 0); -// } if (distance > TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) { distance = CoordinateUtils.calculateLineDistance(startLon, startLat, @@ -932,26 +948,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 @@ -1005,9 +1006,6 @@ public class TaxiModel { if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToStart) { judgeStartStation(location); } -// else if (getCurOrderStatus() == OrderStatusEnum.OnTheWayToEndStation) { -// calculateTravelDistance(location); -// } } mLongitude = location.getLongitude(); mLatitude = location.getLatitude(); @@ -1026,7 +1024,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() { @@ -1035,19 +1042,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() { @@ -1073,7 +1079,8 @@ public class TaxiModel { && state != mPrevAPStatus) { // 当高频返回autopilot 2时,不重复调用订单状态变更 mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 - updateOCHOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd); + + startServicePilotDone(); TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); @@ -1128,7 +1135,7 @@ public class TaxiModel { if (DebugConfig.isDebug()) { // ToastUtils.showShort("到达目的地"); } - updateOCHOrderStatus(TaxiOrderStatusEnum.ArriveAtEnd); + arriveTerminal(); if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 到达目的地,置false FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; @@ -1145,7 +1152,7 @@ public class TaxiModel { @Override public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { - if (null != routeList && routeList.getWayPointsList().size() > 0){ + if (null != routeList && routeList.getWayPointsList().size() > 0) { updateOrderRoute(routeList.getWayPointsList()); updateOrderRouteInfo(routeList.getWayPointsList()); } @@ -1155,11 +1162,12 @@ public class TaxiModel { /** * 上报订单全路径规划数据 + * * @param models */ public void updateOrderRoute(List models) { if (null == mCurrentOCHOrder) return; - List points = coordinateConverterWgsToGcjList(mContext,models); + List points = coordinateConverterWgsToGcjList(mContext, models); TaxiServiceManager.getInstance().updateOrderRoute(mContext, mCurrentOCHOrder.orderNo , points, new TaxiServiceCallback() { @Override @@ -1193,6 +1201,7 @@ public class TaxiModel { /** * 计算全路径长度,以及实时更新剩余距离,剩余时间,预计时间 + * * @param models */ public void updateOrderRouteInfo(List models) { @@ -1201,14 +1210,14 @@ public class TaxiModel { Logger.d(M_TAXI + TAG, "--------计算出sumLength开始---------- "); //转换成高德坐标系 - mRoutePoints = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjListCommon(mContext,models); + mRoutePoints = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjListCommon(mContext, models); startDynamicCalculateRouteInfo(); } - public void startDynamicCalculateRouteInfo(){ - Logger.d(M_TAXI + TAG, "--------mCurrentOCHOrder---------- "+mCurrentOCHOrder); + public void startDynamicCalculateRouteInfo() { + Logger.d(M_TAXI + TAG, "--------mCurrentOCHOrder---------- " + mCurrentOCHOrder); - if (mCurrentOCHOrder != null && mRoutePoints.size() == 0){//根据orderNo去查询 + if (mCurrentOCHOrder != null && mRoutePoints.size() == 0) {//根据orderNo去查询 queryOrderRouteList(mCurrentOCHOrder.orderNo); } @@ -1219,30 +1228,30 @@ public class TaxiModel { /** * 实时计算当前剩余里程和时间 */ - public void dynamicCalculateRouteInfo(){ + public void dynamicCalculateRouteInfo() { List lastPoints = CoordinateCalculateRouteUtil - .getRemainPointListByCompare(mRoutePoints,mLongitude,mLatitude); + .getRemainPointListByCompare(mRoutePoints, mLongitude, mLatitude); float lastSumLength = 0; - if (lastPoints.size() == 1){ //只是最后一个点,计算当前位置和最后一个点的距离 + if (lastPoints.size() == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 lastSumLength = CoordinateUtils.calculateLineDistance( lastPoints.get(0).longitude, lastPoints.get(0).latitude, mLongitude, mLatitude); - }else { + } else { lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints); } - double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6 ; //秒 + double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒 Logger.d(M_TAXI + "dynamicCalculateRouteInfo" - , "---lastSumLength: "+lastSumLength+"----lastTime : "+lastTime); + , "---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime); mCurrentOCHOrder.decreaseTravelDistance(lastSumLength); if (mOrderStatusCallback != null) { mOrderStatusCallback.onCurrentOrderDistToEndChanged((long) lastSumLength, (long) lastTime); } - reportOrderRemain((long)lastSumLength,(long)lastTime); + reportOrderRemain((long) lastSumLength, (long) lastTime); } /** @@ -1275,6 +1284,7 @@ public class TaxiModel { /** * 开始轮询计算剩余里程和时间 + * * @param isStart */ public void startOrStopCalculateRouteInfo(boolean isStart) { @@ -1289,6 +1299,7 @@ public class TaxiModel { /** * 上报订单剩余里程和时间 单位:KM, M, 单位:分钟 + * * @param lastSumLength * @param duration */ @@ -1296,33 +1307,8 @@ public class TaxiModel { if (mCurrentOCHOrder == null) return; TaxiServiceManager.getInstance().reportOrderRemain(mContext, mCurrentOCHOrder.orderNo , lastSumLength, duration, new TaxiServiceCallback() { - @Override - public void onSuccess(BaseData data) { - - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - /** - * 调试使用,没有乘客屏时可使用此按钮跳过乘客验证 - */ - public void jumpPassengerCheckDone() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode() - || mCurrentOCHOrder.passengerPhone == null || mCurrentOCHOrder.passengerPhone.length() < 5) { - ToastUtils.showShort("订单状态不匹配该操作或者手机号有误!"); - return; - } - TaxiServiceManager.getInstance().checkPhoneAndUpdateOrderStatus(mContext - , mCurrentOCHOrder.orderNo, mCurrentOCHOrder.passengerPhone.substring(mCurrentOCHOrder.passengerPhone.length() -4) - , new TaxiServiceCallback() { @Override - public void onSuccess(TaxiCheckPhoneBaseRespBean data) { + public void onSuccess(BaseData data) { } @@ -1333,4 +1319,135 @@ public class TaxiModel { }); } + /** + * 司机端可确认乘客已上车,调用后,后台将订单置为乘客已上车状态 + */ + public void jumpPassengerCheckDone() { + if (mCurrentOCHOrder == null + || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode()) { + ToastUtils.showShort("订单状态不匹配该操作或者订单为空!"); + return; + } + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + TaxiServiceManager.getInstance().updatePassengerHasBoardedStatus(mContext + , mCurrentOCHOrder.orderNo + , result + , new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiDataBaseRespBean data) { + if (null != data && 0 == data.code){ + updateOrderStatus(TaxiOrderStatusEnum.UserArriveAtStart); + } + } + + @Override + public void onFail(int code, String msg) { + ToastUtils.showShort(msg); + } + }); + } + + public void startServicePilotDone(){ + if (mCurrentOCHOrder == null) return; + + TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); + result.lat = mLatitude; + result.lon = mLongitude; + 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 + public void onFail(int code, String msg) { + } + }); + } + + 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) { + ToastUtils.showShort(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 e57b349243..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 @@ -19,8 +19,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean; import com.mogo.och.taxi.bean.OrdersListQueryRespBean; import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean; import com.mogo.och.taxi.bean.QueryOrderRouteResp; -import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean; -import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean; +import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; +import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean; import io.reactivex.Observable; @@ -227,13 +227,84 @@ interface TaxiServiceApiNew { , @Header("ticket") String ticket, @Query("orderNo") String orderNo); /** - * 提交用户输入的手机后4位、并进行状态扭转 用于调试跳过乘客屏使用 + * 司机端跳过乘客验证,订单状态流转为乘客已上车 * @param data * @return */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/passenger/verification/phone" ) - Observable checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId - , @Header("ticket") String ticket, @Body TaxiCheckPhoneUpdateOrderReqBean data); + @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/ready/passenger" ) + Observable updatePassengerHasBoardedStatus(@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/ready/pilot" ) + Observable confirmAutopilotConditionByDriver(@Header ("appId") String appId + , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); + + /** + * 查询司机是否已确认可开启自动驾驶 + * @param appId + * @param ticket + * @param orderNo + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @GET( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/pilot/status" ) + Observable queryPilotStatus(@Header ("appId") String appId + , @Header("ticket") String ticket,@Query("orderNo") String orderNo); + + /** + * 开启自动驾驶成功 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @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 2634838a10..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 @@ -29,8 +29,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean; import com.mogo.och.taxi.bean.OrdersListQueryRespBean; import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean; import com.mogo.och.taxi.bean.QueryOrderRouteResp; -import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean; -import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean; +import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; +import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean; import com.mogo.och.taxi.constant.TaxiConst; @@ -347,16 +347,93 @@ public class TaxiServiceManager { .subscribe(getSubscribeImpl(context,callback,"queryOrderRoute")); } - public void checkPhoneAndUpdateOrderStatus(Context context, String orderNo,String phone - ,TaxiServiceCallback callback){ - - mOCHTaxiServiceApi.checkPhoneAndUpdateOrderStatus( + public void confirmAutopilotConditionByDriver(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + mOCHTaxiServiceApi.confirmAutopilotConditionByDriver( MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() - ,new TaxiCheckPhoneUpdateOrderReqBean(orderNo,phone)) + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus")); + .subscribe(getSubscribeImpl(context,callback,"confirmAutopilotConditionByDriver")); + } + + public void queryAutopilotStatus(Context context, String orderNo, + TaxiServiceCallback callback){ + mOCHTaxiServiceApi.queryPilotStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,orderNo) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context,callback,"queryAutopilotStatus")); + } + + public void updatePassengerHasBoardedStatus(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + + mOCHTaxiServiceApi.updatePassengerHasBoardedStatus( + MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "updatePassengerHasBoardedStatus")); + } + + public void startServicePilotDone(Context context, String orderNo + , TaxiOrPassengerReadyReqBean.Result loc + , TaxiServiceCallback callback){ + mOCHTaxiServiceApi.startServicePilotDone(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiOrPassengerReadyReqBean(MoGoAiCloudClientConfig.getInstance().getSn() + ,orderNo,loc)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .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( 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 7050ba9d19..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 @@ -65,7 +65,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().setCarStatusCallback(this); TaxiModel.getInstance().setControllerStatusCallback(this); TaxiModel.getInstance().setOrderStatusCallback(this); -// TaxiModel.getInstance().setMoGoAutopilotPlanningListener(this); } private void releaseListeners() { @@ -73,7 +72,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().setCarStatusCallback(null); TaxiModel.getInstance().setControllerStatusCallback(null); TaxiModel.getInstance().setOrderStatusCallback(null); -// TaxiModel.getInstance().setMoGoAutopilotPlanningListener(null); } private void runOnUIThread( Runnable executor ) { @@ -102,15 +100,18 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().jumpPassengerCheckDone(); } + /** + * 司机确认车辆环境可开启自动驾驶 + */ + public void confirmAutopilotConditionByDriver() { + TaxiModel.getInstance().confirmAutopilotConditionByDriver(); + } + // 更新出车/收车状态 public void updateCarStatus() { TaxiModel.getInstance().updateCarStatus(); } - // 更新当前订单状态(当前订单状态流转) - public void updateCurOrderStatus(TaxiOrderStatusEnum status) { - TaxiModel.getInstance().updateOCHOrderStatus(status); - } // 获取当前订单状态 public TaxiOrderStatusEnum getCurOrderStatus() { @@ -152,6 +153,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().queryDriverServiceData(); } + //更新订单已完成状态 + public void completeOrderService() { + TaxiModel.getInstance().orderCompleted(); + } + @Override public void onAutopilotArriveEnd() { @@ -260,6 +266,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS runOnUIThread(() -> mView.onGrabOrderFailed(order)); } + @Override + public void onDriverHasCheckedPilotCondition(boolean isSafe) { + runOnUIThread(() -> mView.onCheckPilotConditionSafe(isSafe)); + } + @Override public void onVRModeChanged(boolean isVRMode) { runOnUIThread(() -> mView.switchVRFlatMode(isVRMode)); @@ -274,8 +285,4 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS }); } } -// @Override -// public void routeResult(List models) { -// if (models != null && models.size() > 0) mView.routeResult(models); -// } } 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 e574dcf909..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 @@ -92,6 +92,7 @@ public abstract class BaseTaxiTabFragment { // onShow() -// return mBadcaseBtn; }, -// () -> { // onHide() -// return null; }); - if (mBadcaseBtn != null) { CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn, null, null); if (!HmiBuildConfig.isShowBadCaseView) { CallerAutopilotRecordListenerManager.INSTANCE.addListener(TAG, this); } } + //设置升级小红点提示 默认隐藏 mUpgradeTipIv = findViewById(R.id.module_och_taxi_upgrade_red_tip); CallerHmiManager.INSTANCE.registerUpgradeTipsCallback(() -> mUpgradeTipIv); @@ -176,14 +172,14 @@ public abstract class BaseTaxiTabFragment { -// ctvAutopilotStatus.setVisibility(View.GONE); -// slidePanelView.setVisibility(View.GONE); - }); - } - - /** - * 展示【自动驾驶】按钮 - */ - public void showAutopilotBiz() { - getActivity().runOnUiThread(() -> { - ctvAutopilotStatus.setVisibility(View.VISIBLE); - }); - } - public void hidPanel() { getActivity().runOnUiThread(() -> { flStationPanelContainer.setVisibility(View.GONE); @@ -484,16 +471,6 @@ public abstract class BaseTaxiTabFragment里程 " + "" + dis + "" + " "+disUnit+"" - + ",剩余 " + "" + (int)Math.ceil((double)timeInSecond/ 60f) + "" + " 分钟"; + + ",剩余 " + "" + min + "" + " 分钟"; if (mContentModule3 != null && mContentModule3.getVisibility() == View.VISIBLE) { //前往上车点 @@ -343,6 +345,12 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement speekVoice200mTipsOnce(); } mDistanceAndTime2.setText(Html.fromHtml(strHtml2)); + if (isFirstStartAutopilotDone){ + showNotice(String.format(getResources() + .getString(R.string.module_och_taxi_order_server_start_auto_tip), + dis,min)); + isFirstStartAutopilotDone = false; + } } } @@ -381,16 +389,13 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement private void startOrEndService() { if (mCurrentOrder == null) return; - if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息 - mTaxiFragment.completeOrderService(TaxiOrderStatusEnum.JourneyCompleted); - showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip)); - return; - } else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == mCurrentOrder.orderStatus) {//点击服务,开启自动驾驶 - mTaxiFragment.startAutoPilot(); - showNotice(getResources().getString(R.string.module_och_taxi_order_server_start_auto_tip)); - return; - }else if (TaxiOrderStatusEnum.ArriveAtStart.getCode() == mCurrentOrder.orderStatus){ //到达乘客上车点,司机可跳过乘客屏认证 + if (TaxiOrderStatusEnum.ArriveAtStart.getCode() == mCurrentOrder.orderStatus){ //到达乘客上车点,司机可跳过乘客屏认证 mTaxiFragment.jumpPassengerCheckDone(); + }else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == mCurrentOrder.orderStatus) {//点击此按钮,说明通知后端准备好开启自动驾驶的条件 + mTaxiFragment.confirmAutopilotConditionByDriver(); + }else if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息 + mTaxiFragment.completeOrderService(); + showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip)); } } @@ -412,6 +417,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement mOrderCancel.setVisibility(View.VISIBLE); showNotice(mActivity.getString(R.string.module_och_taxi_new_order)); mTtsLessThan200Tip = 0; + isFirstStartAutopilotDone = true; startNaviToStartStation(false, mOrderStartStationLat, mOrderStartStationLng); showOrHideNavi(true); setOrRemoveMapMaker(true, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); @@ -420,6 +426,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement case Cancel: mCurrentOrder = null; mTtsLessThan200Tip = 0; + isFirstStartAutopilotDone = true; mOrderCancel.setVisibility(View.VISIBLE); showNotice(mActivity.getString(R.string.module_och_taxi_order_cancel)); showOrHideNavi(false); @@ -430,6 +437,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement case ArriveAtStart: case UserArriveAtStart: mTtsLessThan200Tip = 0; + isFirstStartAutopilotDone = true; mOrderCancel.setVisibility(View.VISIBLE); if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == ochStatus.getCode()){ showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text_check_success)); @@ -458,6 +466,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement case JourneyCompleted: mCurrentOrder = null; mTtsLessThan200Tip = 0; + isFirstStartAutopilotDone = true; mOrderCancel.setVisibility(View.GONE); showNotice("感谢您使用蘑菇智行,再见~"); showOrHideNavi(false); @@ -618,6 +627,22 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarkers(uuid); } } + + public void updateOrderUI() { + try { + updateOrderBottomBtn(); + }catch (NullPointerException e){ + mTaxiFragment.confirmAutopilotConditionByDriver(); + } + } + + public void updateOrderBottomBtn(){ + mOrderServerStatus.setText(R.string.module_och_taxi_order_server_wait_passenger_start); + mOrderServerStatus.setTextColor(Color.parseColor("#4DFFFFFF")); + GradientDrawable background = (GradientDrawable) mOrderServerStatus.getBackground();//GradientDrawable是Drawable的子类 + background.setColor(Color.parseColor("#4D1D5EF3")); + mOrderServerStatus.setClickable(false); + } /** * END */ diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 29f01e6f71..f046834159 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -59,8 +59,10 @@ public class TaxiFragment extends BaseTaxiTabFragment { TaxiModel.getInstance().setArriveAtEndStation(); }); + 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); @@ -382,5 +389,4 @@ public class TaxiFragment extends BaseTaxiTabFragment +