[3.3.2]
[查询订单状态需要两个接口联合判断]
This commit is contained in:
@@ -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<String, IOCHTaxiPassengerOrderStatusCallback> = 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<TaxiPassengerOrdersInServiceQueryRespBean> {
|
||||
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<TaxiPassengerOrderQueryRespBean> {
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询司机是否已确认可开启自动驾驶
|
||||
*/
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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<TaxiPassengerOrderQueryRespBean>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.queryOrderById(
|
||||
data=TaxiPassengerOrderQueryReqBean(draiverSn, orderNo)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderById"))
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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<TaxiPassengerBaseFragment?>(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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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="--" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_endstation_title"
|
||||
@@ -89,7 +89,7 @@
|
||||
app:layout_constraintEnd_toStartOf="@+id/actv_surplus_time"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/actv_speed_value"
|
||||
android:text="12" />
|
||||
android:text="--" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_distance_unit"
|
||||
@@ -112,7 +112,7 @@
|
||||
app:layout_constraintEnd_toStartOf="@+id/actv_arrived_time"
|
||||
app:layout_constraintStart_toEndOf="@+id/actv_distance"
|
||||
app:layout_constraintTop_toTopOf="@+id/actv_distance"
|
||||
android:text="23.6" />
|
||||
android:text="--" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_surplus_time_unit"
|
||||
@@ -133,7 +133,7 @@
|
||||
android:textSize="@dimen/dp_61"
|
||||
android:textColor="@color/taxi_p_081831"
|
||||
android:layout_marginEnd="@dimen/dp_58"
|
||||
android:text="15:05"
|
||||
android:text="--"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/actv_surplus_time"
|
||||
app:layout_constraintTop_toTopOf="@+id/actv_distance" />
|
||||
|
||||
Reference in New Issue
Block a user