diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 766d01c9b1..3509607844 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -8,7 +8,9 @@ import com.mogo.commons.module.intent.IMogoIntentListener import com.mogo.commons.module.intent.IntentManager import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e @@ -60,7 +62,6 @@ object TaxiPassengerModel { var currentOCHOrder: TaxiPassengerOrderQueryRespBean.Result? = null//当前订单 private val mOrderStatusCallbackMap: MutableMap = ConcurrentHashMap() - private var subscribe: Disposable? = null fun setOrderStatusCallback(tag: String?, callback: IOCHTaxiPassengerOrderStatusCallback?) { if (tag == null || "" == tag) return @@ -94,7 +95,6 @@ object TaxiPassengerModel { startOrStopOrderLoop(false) startOrStopQueryOrderRemaining(false) releaseListeners() - RxUtils.disposeSubscribe(subscribe) } private fun initListeners() { @@ -143,6 +143,9 @@ object TaxiPassengerModel { object : OchCommonServiceCallback { override fun onSuccess(data: TaxiPassengerOrdersInServiceQueryRespBean) { if (data.data == null) { + if(currentOCHOrder!=null){ + queryCurOrderStatus() + } return } //1. 处理进行中订单 @@ -151,10 +154,14 @@ object TaxiPassengerModel { val currentOrder = data.data.servicing[0] if(currentOCHOrder==null||currentOCHOrder?.orderStatus!=currentOrder.orderStatus){ currentOCHOrder = currentOrder - orderStatusChange(currentOrder) + orderStatusChange() }else { currentOCHOrder = currentOrder } + }else{ + if(currentOCHOrder!=null){ + queryCurOrderStatus() + } } } @@ -167,6 +174,30 @@ object TaxiPassengerModel { }) } + //仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder + private fun queryCurOrderStatus() { + currentOCHOrder?.orderNo?.let { + TaxiPassengerServiceManager.queryOrderById( + mContext!!, it, + object : OchCommonServiceCallback { + override fun onSuccess(data: TaxiPassengerOrderQueryRespBean) { + if (data.data != null && currentOCHOrder != null && currentOCHOrder!!.orderNo == data.data.orderNo) { + if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.code) { + currentOCHOrder = data.data + orderStatusChange() + currentOCHOrder = null + } else { + currentOCHOrder = data.data + orderStatusChange() + } + } + } + + override fun onFail(code: Int, msg: String) {} + }) + } + } + // 获取当前订单状态 val curOrderStatus: TaxiPassengerOrderStatusEnum get() { @@ -256,7 +287,7 @@ object TaxiPassengerModel { if (data.code == 0 && currentOCHOrder != null) { currentOCHOrder!!.orderStatus = TaxiPassengerOrderStatusEnum.UserArriveAtStart.code //乘客验证成功,更新订单状态为 "乘客已上车", 立马弹出乘客开始行程页面,不再等待轮询 - orderStatusChange(currentOCHOrder!!) + orderStatusChange() } commonCallback?.onCommonCallback() } @@ -271,14 +302,58 @@ object TaxiPassengerModel { }) } - fun orderStatusChange(currentOCHOrder: TaxiPassengerOrderQueryRespBean.Result){ + fun orderStatusChange(){ + orderStatusChangeInner() if (mOrderStatusCallbackMap.isNotEmpty()) { + d(M_TAXI_P + TAG, "最新的状态${curOrderStatus}") for (callback in mOrderStatusCallbackMap.values) { callback.onCurrentOrderStatusChanged(currentOCHOrder) } } } + private fun orderStatusChangeInner() { + when (curOrderStatus) { + TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + } + TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + } + TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + //开启轮询司机是否已准备好开启自动驾驶的环境 + startDriverReadyToAutopilotLoop() + setStation() + } + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + CallerFuncBizManager.bizProvider.queryV2XEvents() //全览模式的V2X事件轮询开始 + startOrStopQueryOrderRemaining(true) + AutopilotManager.updateAutopilotControlParameters() + startOrStopReadyToAutopilotLoop(false) + setStation() + CallerOrderListenerManager.invokeOrderStatus(true) + } + TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + recoverNaviInfo() + AutopilotManager.clearAutopilotControlParameters() + startOrStopQueryOrderRemaining(false) + CallerOrderListenerManager.invokeOrderStatus(false) + cleanStation() + } + TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + AutopilotManager.clearAutopilotControlParameters() + startOrStopQueryOrderRemaining(false) + cleanStation() + } + TaxiPassengerOrderStatusEnum.Cancel -> { + recoverNaviInfo() + AutopilotManager.clearAutopilotControlParameters() + startOrStopQueryOrderRemaining(false) + startOrStopReadyToAutopilotLoop(false) + cleanStation() + } + TaxiPassengerOrderStatusEnum.None -> TODO() + } + } + /** * 查询司机是否已确认可开启自动驾驶 */ diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.kt index f68e077e56..83c145f6d4 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.kt @@ -44,7 +44,6 @@ internal interface TaxiPassengerServiceApi { */ @Headers("Content-type:application/json;charset=UTF-8") @POST("/autopilot-car-hailing/order/v2/driver/taxi/passenger/queryOrderById") - @Deprecated("v2.1_0930需求中暂不再使用此接口") fun queryOrderById( @Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId, @Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token, diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt index 53f5d6290b..ebabd89d70 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt @@ -1,6 +1,7 @@ package com.mogo.och.taxi.passenger.network import android.content.Context +import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -15,6 +16,8 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry +import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryReqBean +import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean /** * Created by pangfan on 2021/8/19 @@ -126,5 +129,24 @@ object TaxiPassengerServiceManager { .transformTry() .subscribe(OchCommonSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus")) } - + + /** + * 通过orderId查询订单信息(用于本地已经有orderId时) + * @param context + * @param orderNo + * @param callback + */ + @JvmStatic + fun queryOrderById( + context: Context, orderNo: String?, + callback: OchCommonServiceCallback? + ) { + mOCHTaxiServiceApi.queryOrderById( + data=TaxiPassengerOrderQueryReqBean(draiverSn, orderNo) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderById")) + } + + } \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index f0fac1531e..8f4123c0d7 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.LifecycleOwner import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager.bizProvider -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager.invokeOrderStatus +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -14,8 +14,6 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.AutopilotManager -import com.mogo.och.taxi.passenger.model.AutopilotManager.clearAutopilotControlParameters -import com.mogo.och.taxi.passenger.model.AutopilotManager.updateAutopilotControlParameters import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment @@ -25,8 +23,6 @@ import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment */ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : Presenter(view), IOCHTaxiPassengerOrderStatusCallback { - @Volatile - private var mCurrentPassengerOrder: TaxiPassengerOrderQueryRespBean.Result? = null //当前订单 init { TaxiPassengerModel.init(AbsMogoApplication.getApp()) @@ -54,24 +50,8 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null) } - private fun runOnUIThread(executor: Runnable?) { - if (executor == null) { - return - } - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(executor) - } else { - executor.run() - } - } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) { -// CallerLogger.INSTANCE.d(M_TAXI_P + TAG, GsonUtil.jsonFromObject(order)); - if (mCurrentPassengerOrder == null) { - mCurrentPassengerOrder = order //当前无订单 - updateOrderView(order) - } else if (mCurrentPassengerOrder!!.orderStatus != order!!.orderStatus) { - mCurrentPassengerOrder = order + order?.let { updateOrderView(order) } } @@ -85,113 +65,54 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : override fun onDriverHasCheckedPilotCondition(isBoarded: Boolean) { d(SceneConstant.M_TAXI_P + TAG, "isBoarded = $isBoarded") - runOnUIThread { mView!!.updateStartAutopilotBtnStatus(isBoarded) } + mView?.updateStartAutopilotBtnStatus(isBoarded) } private fun updateOrderView(order: TaxiPassengerOrderQueryRespBean.Result?) { - d(SceneConstant.M_TAXI_P + TAG, "updateOrderView = " + order!!.orderStatus) - setItineraryVisibility() - // 70 取消订单 - if (TaxiPassengerOrderStatusEnum.Cancel.code == order.orderStatus) { - runOnUIThread { - mView!!.showOrHideOverMapViewFragment(false) - mView!!.showOrHideStartAutopilotView(false, false) - mView!!.showOrHidePressengerCheckPager( - false, "", - "", "", "", "" - ) - mView!!.showOrHideArrivedEndLayout(false, "", "") - } - TaxiPassengerModel.recoverNaviInfo() - clearAutopilotControlParameters() - TaxiPassengerModel.startOrStopQueryOrderRemaining(false) - TaxiPassengerModel.startOrStopReadyToAutopilotLoop(false) - TaxiPassengerModel.cleanStation() - return - } - // 20 司机到达上车点 - if (TaxiPassengerOrderStatusEnum.ArriveAtStart.code == order.orderStatus) { - runOnUIThread { - mView!!.preOrderThankPageTenlogic( - order.startSiteAddr, - order.endSiteAddr, order.passengerNum, order.carNumber, order.passengerPhone - ) - } - return - } - // TODO: 2022/6/10 若乘客端确认已经上车,则显示开始行程按钮 并且不可点击 暗 - // TODO: 2022/6/10 乘客已上车 需要开启轮询司机确认可以开启自动驾驶的接口 - // TODO: 2022/6/10 若司机端已经确认,则显示开始行程按钮 并且可点击,第二步的轮询停止 - //TODO: 2022/6/10 若订单取消或者隐藏则关掉开始行程界面,轮询也要取消 - if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.code == order.orderStatus) { - runOnUIThread { - d(SceneConstant.M_TAXI_P + TAG, "UserArriveAtStart") - mView!!.showOrHideStartAutopilotView(true, false) - } - //开启轮询司机是否已准备好开启自动驾驶的环境 - TaxiPassengerModel.startDriverReadyToAutopilotLoop() - TaxiPassengerModel.setStation() - } - if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.code == order.orderStatus) { - runOnUIThread { - mView!!.showOrHideStartAutopilotView(false, false) - } - bizProvider.queryV2XEvents() //全览模式的V2X事件轮询开始 - TaxiPassengerModel.startOrStopQueryOrderRemaining(true) - updateAutopilotControlParameters() - TaxiPassengerModel.startOrStopReadyToAutopilotLoop(false) - TaxiPassengerModel.setStation() - } - // 30 用户到达上车点 并通过了手机号后四位验证 - // 40 服务中 - if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.code == order.orderStatus - || TaxiPassengerOrderStatusEnum.OnTheWayToEnd.code == order.orderStatus - ) { - runOnUIThread { - mView!!.showOrHideArrivedEndLayout(false, "", "") - mView!!.showOrHidePressengerCheckPager( - false, "", - "", "", "", "" - ) - if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.code == order.orderStatus) { - invokeOrderStatus(true) + order?.let { + setItineraryVisibility() + when (TaxiPassengerModel.curOrderStatus) { + TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + // 20 司机到达上车点 + mView?.showOrHideArrivedEndLayout(isShow = false) + mView?.showOrHidePressengerCheckPager(true, order.startSiteAddr, + order.endSiteAddr, order.passengerNum, order.carNumber, order.passengerPhone) } - } - return - } - // 50 到达终点 乘客可以评价 - if (TaxiPassengerOrderStatusEnum.ArriveAtEnd.code == order.orderStatus) { - TaxiPassengerModel.recoverNaviInfo() - mView!!.showOrHideOverMapViewFragment(false) - clearAutopilotControlParameters() - TaxiPassengerModel.startOrStopQueryOrderRemaining(false) - runOnUIThread { - mView!!.showOrHideArrivedEndLayout(true, order.endSiteAddr, order.orderNo) - invokeOrderStatus(false) + TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + mView?.showOrHideStartAutopilotView(isShow = true, isClickable = false) + mView?.showOrHideArrivedEndLayout(isShow = false) + mView?.showOrHidePressengerCheckPager(isShow = false) + } + + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + mView?.showOrHideStartAutopilotView(isShow = false, isClickable = false) + mView?.showOrHideArrivedEndLayout(isShow = false) + mView?.showOrHidePressengerCheckPager(isShow = false) + } + + TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + // 50 到达终点 乘客可以评价 + mView?.showOrHideArrivedEndLayout(true, order.endSiteAddr, order.orderNo) + mView?.showOrHideOverMapViewFragment(false) + } + + TaxiPassengerOrderStatusEnum.Cancel -> { + // 70 取消订单 + mView?.showOrHideOverMapViewFragment(false) + mView?.showOrHideStartAutopilotView(isShow = false, isClickable = false) + mView?.showOrHidePressengerCheckPager(isShow = false) + mView?.showOrHideArrivedEndLayout(isShow = false) + } + + else -> {} } - TaxiPassengerModel.cleanStation() - return - } - // 60 服务完成 页面 - if (TaxiPassengerOrderStatusEnum.JourneyCompleted.code == order.orderStatus) { - clearAutopilotControlParameters() - TaxiPassengerModel.startOrStopQueryOrderRemaining(false) - mCurrentPassengerOrder = null - TaxiPassengerModel.cleanStation() } } fun checkAndUpdateStatus(phone: String?) { TaxiPassengerModel.checkPhoneAndUpdateStatus(phone) { - mView!!.showOrHidePressengerCheckPager( - false, - "", - "", - "", - "", - "" - ) + mView?.showOrHidePressengerCheckPager(isShow = false) } } @@ -205,14 +126,14 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : fun setItineraryVisibility() { UiThreadHandler.post { when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.None -> mView?.showOrHideServingOrderFragment(false) - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> mView?.showOrHideServingOrderFragment(true) - TaxiPassengerOrderStatusEnum.ArriveAtStart -> mView?.showOrHideServingOrderFragment(false) - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> mView?.showOrHideServingOrderFragment(true) - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> mView?.showOrHideServingOrderFragment(true) - TaxiPassengerOrderStatusEnum.JourneyCompleted -> mView?.showOrHideServingOrderFragment(false) + TaxiPassengerOrderStatusEnum.None, + TaxiPassengerOrderStatusEnum.OnTheWayToStart, + TaxiPassengerOrderStatusEnum.ArriveAtStart, + TaxiPassengerOrderStatusEnum.JourneyCompleted, + TaxiPassengerOrderStatusEnum.ArriveAtEnd, TaxiPassengerOrderStatusEnum.Cancel -> mView?.showOrHideServingOrderFragment(false) + TaxiPassengerOrderStatusEnum.UserArriveAtStart, + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) } } } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 07372a0719..167a938087 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -4,7 +4,7 @@ import android.os.Bundle import android.view.View import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.DeviceUtils @@ -67,7 +67,7 @@ class TaxiPassengerBaseFragment() : override fun initViews() { initListener() - onAutopilotStatusChanged(getState()) + onAutopilotStatusSuccessDone() } override fun initViews(savedInstanceState: Bundle?) { @@ -161,26 +161,6 @@ class TaxiPassengerBaseFragment() : overMapView.onResume() } - /** - * 改变自动驾驶状态 - * - * @param status 2 - running 1 - enable 2 - disable - */ - private var mPrevAPStatus = -1 - fun onAutopilotStatusChanged(status: Int) { - 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 - onAutopilotStatusSuccessDone() - } - mPrevAPStatus = status - } - override fun createPresenter(): BaseTaxiPassengerPresenter { return BaseTaxiPassengerPresenter(this) } @@ -269,11 +249,7 @@ class TaxiPassengerBaseFragment() : fun showOrHideStartAutopilotView(isShow: Boolean, isClickable: Boolean) { if (isShow) { if (mStartAutopilotView == null || mStartAutopilotView!!.get() == null) { - mStartAutopilotView = WeakReference( - TaxiPassengerStartAutopilotView( - context - ) - ) + mStartAutopilotView = WeakReference(TaxiPassengerStartAutopilotView(context)) } mStartAutopilotView!!.get()!!.setOnClickStartAutopilotBtnCallback(this) OverlayViewUtils.showOverlayView(activity, mStartAutopilotView!!.get()) @@ -296,10 +272,12 @@ class TaxiPassengerBaseFragment() : } fun onAutopilotStatusSuccessDone() { - if (mStartAutopilotView == null || mStartAutopilotView!!.get() == null) { - return + if ((IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == CallerAutoPilotStatusListenerManager.getState())) { + if (mStartAutopilotView == null || mStartAutopilotView!!.get() == null) { + return + } + mStartAutopilotView!!.get()!!.onAutopilotStatusSuccess() } - mStartAutopilotView!!.get()!!.onAutopilotStatusSuccess() } /** @@ -313,7 +291,7 @@ class TaxiPassengerBaseFragment() : * @param arrivedEndStation 目的地 * @param orderNo 订单No */ - fun showOrHideArrivedEndLayout(isShow: Boolean, arrivedEndStation: String?, orderNo: String?) { + fun showOrHideArrivedEndLayout(isShow: Boolean, arrivedEndStation: String?="", orderNo: String?="") { if (isShow) { if (mArrivedEndView == null || mArrivedEndView!!.get() == null) { initArrivedView() @@ -337,21 +315,6 @@ class TaxiPassengerBaseFragment() : } } - // 20 司机到达上车点 - fun preOrderThankPageTenlogic( - startSiteAddr: String?, - endSiteAddr: String?, - passengerNum: String?, - carNumber: String?, - phone: String? - ) { - showOrHideArrivedEndLayout(false, "", "") - showOrHidePressengerCheckPager( - true, startSiteAddr, - endSiteAddr, passengerNum, carNumber, phone - ) - } - /** * ① 取消订单 到达上车点后乘客取消订单 隐藏乘客验证页面 * ② 司机到达上车点 到达上车点 展示乘客验证页面 @@ -359,11 +322,12 @@ class TaxiPassengerBaseFragment() : * ④ debug 使用 */ fun showOrHidePressengerCheckPager( - isShow: Boolean, startSiteAddr: String?, - endSiteAddr: String?, - passengerNum: String?, - carNumber: String?, - phone: String? + isShow: Boolean, + startSiteAddr: String? = "", + endSiteAddr: String? = "", + passengerNum: String? = "", + carNumber: String? = "", + phone: String? = "" ) { try { if (isShow) { @@ -384,22 +348,6 @@ class TaxiPassengerBaseFragment() : } } - /** - * 用户评分后接口回调 - * - * @param isSuccess true 打分成功 false 打分失败 - */ - fun showArrivedEndLayout2Thank(isSuccess: Boolean) { - if (mArrivedEndView == null || mArrivedEndView!!.get() == null) { - initArrivedView() - } - if (isSuccess) { - mArrivedEndView!!.get()!!.scoreSuccess() - } else { - mArrivedEndView!!.get()!!.scoreFail() - } - } - override fun onClickCallback() { mPresenter!!.startAutopilot() } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/ItineraryView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/ItineraryView.kt index bee467a606..4287077e4b 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/ItineraryView.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/ItineraryView.kt @@ -90,7 +90,11 @@ class ItineraryView : ConstraintLayout, OrderInfoViewModel.ItineraryViewCallback actv_speed_value.text = speedValue } override fun setEndStation(endStation:String){ - actv_endstation.text = endStation + if(endStation.length>9){ + actv_endstation.text = "${endStation.subSequence(0,9)}…" + }else { + actv_endstation.text = endStation + } } var prePercentage = 0f diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt index e4e8a17a26..61b567185a 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -11,6 +11,7 @@ import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback +import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import kotlin.math.abs import kotlin.math.ceil @@ -22,7 +23,12 @@ class OrderInfoViewModel: ViewModel(), IMoGoChassisLocationGCJ02Listener, private var viewCallback:ItineraryViewCallback?=null + private var disUnit:String + private var surplusTimeUnit:String + init { + disUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_distance_unit_km) + surplusTimeUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_surplustime) // 设置起点和终点marker和实时车辆位置 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 4, this) TaxiPassengerModel.setOrderStatusCallback(TAG,this) @@ -61,6 +67,18 @@ class OrderInfoViewModel: ViewModel(), IMoGoChassisLocationGCJ02Listener, viewCallback?.setEndStation(it) } } + when (TaxiPassengerModel.curOrderStatus) { + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + + } + else ->{ + UiThreadHandler.post { + viewCallback?.setDistanceInfo( + "--", disUnit, "--", surplusTimeUnit, "--", 0, 100 + ) + } + } + } } override fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int) { @@ -71,14 +89,13 @@ class OrderInfoViewModel: ViewModel(), IMoGoChassisLocationGCJ02Listener, disUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_distance_unit_m) dis = Math.round(meters.toFloat()).toString() } else { - + disUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_distance_unit_km) dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) } } val time = ceil(timeInSecond / 60f).toInt() val arriveTime = DateTimeUtil.getAfterSecondTime(timeInSecond.toInt()) - val surplusTimeUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_surplustime) UiThreadHandler.post { viewCallback?.setDistanceInfo( dis!!,disUnit,time.toString(),surplusTimeUnit,arriveTime,stationDistance-meters.toInt(),stationDistance) diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_itinerary.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_itinerary.xml index 15ce4b730c..2330ffc027 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_itinerary.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_itinerary.xml @@ -52,7 +52,7 @@ app:layout_constraintBottom_toBottomOf="@+id/actv_speed_unit" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/actv_speed_unit" - android:text="环球贸易中心" /> + android:text="--" /> + android:text="--" /> + android:text="--" />