diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index 9ec9bcbc8e..62b32f6f14 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -65,6 +65,10 @@ object CharterPassengerModel { // 轨迹信息 用来启动自动驾驶 private var locusInfo: LocusResponse.LocusInfo? = null + private var orderStatus:OrderStatusEnum = OrderStatusEnum.NoOrderUnuse + + private var orderStatusChangeListener:IOrderStatusChangeListener?=null + fun init() { initListeners() queryLoginStatus() @@ -72,7 +76,6 @@ object CharterPassengerModel { fun release() { releaseListeners() - startOrStopCalculateRouteInfo(false) } private fun releaseListeners() { @@ -189,6 +192,12 @@ object CharterPassengerModel { } } } + fun setStatusChangeListener(orderStatusChangeListener:IOrderStatusChangeListener?){ + this.orderStatusChangeListener = orderStatusChangeListener + } + fun getCurrentOrderStatus():OrderStatusEnum{ + return this.orderStatus + } // endregion // region 登录状态逻辑 @@ -257,12 +266,14 @@ object CharterPassengerModel { */ fun ordrLagic(orderData: OrderInfoResponse.OrderInfo) { if (orderData.orderNo == null) { + setOrderStatus(OrderStatusEnum.NoOrderUnuse) return } // 有订单有线路后结束轮训 orderData.let { order -> if (order.lineId == null || order.lineId == 0L || order.siteId == null || order.siteId == 0L) { // 去选线路和站点 + setOrderStatus(OrderStatusEnum.OrderNoLine) } else { this.orderInfo = orderData // 有订单取消轮训 @@ -270,6 +281,7 @@ object CharterPassengerModel { // 已经选择线路和终点、恢复现场数据 // 启动车辆服务状态 startCarStatusLoop() + setOrderStatus(OrderStatusEnum.OrdersWithLine) // 启动时间校准 startCalibrationLoop() // 查询自动驾驶轨迹 @@ -344,10 +356,12 @@ object CharterPassengerModel { locusInfo = null if (data.businessStatus == 2) {// 订单结束 没有还车 // todo 还车中 需要显示 @com.mogo.och.bus.passenger.ui.view.EndOrderView 页面 + setOrderStatus(OrderStatusEnum.NoOrderUse) } else { // 车辆空闲 订单结束已经还车 // 结束车态轮训 endCarStatusLoop() + setOrderStatus(OrderStatusEnum.NoOrderUnuse) } } // endregion @@ -424,16 +438,12 @@ object CharterPassengerModel { } // endregion - /** - * 开始轮询计算剩余里程和时间 - * @param isStart - */ - private fun startOrStopCalculateRouteInfo(isStart: Boolean) { - CallerLogger.d(M_BUS_P + TAG, "startOrStopCalculateRouteInfo() $isStart") - if (isStart) { -// BusPassengerModelLoopManager.startCalculateRouteInfoLoop() - } else { -// BusPassengerModelLoopManager.stopCalculateRouteInfLoop() + + private fun setOrderStatus(orderStatus: OrderStatusEnum) { + if(this.orderStatus!=orderStatus) { + this.orderStatus = orderStatus + orderStatusChangeListener?.onStatusChange(this.orderStatus) } } + } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt index feb181b90d..7b5727b38c 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt @@ -14,6 +14,7 @@ enum class OrderStatusEnum(val code: Int) { OrdersWithLine( 20), //有订单有线路 m1_order_lineside 选择线路页面隐藏掉确定取消 NoOrderUse( 30),; //无订单车不闲置 m1_order_end.xml 开门关门页面 + companion object { @JvmStatic fun valueOf(code: Int): OrderStatusEnum? { @@ -25,4 +26,8 @@ enum class OrderStatusEnum(val code: Int) { return NoOrderUnuse } } +} + +interface IOrderStatusChangeListener { + fun onStatusChange(currentStatus:OrderStatusEnum) } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt index 73a0b94195..8b5903cd79 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt @@ -1,6 +1,30 @@ package com.mogo.och.bus.passenger.presenter +import androidx.lifecycle.LifecycleOwner +import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener +import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.ui.M1OrderFragment class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) : - BusBasePassengerFunctionDevicePresenter(view) \ No newline at end of file + BusBasePassengerFunctionDevicePresenter(view), IOrderStatusChangeListener { + + override fun onCreate(owner: LifecycleOwner) { + super.onCreate(owner) + CharterPassengerModel.setStatusChangeListener(this) + } + + override fun onResume(owner: LifecycleOwner) { + super.onResume(owner) + mView?.setViewByOrderStatus(CharterPassengerModel.getCurrentOrderStatus()) + } + + override fun onDestroy(owner: LifecycleOwner) { + super.onDestroy(owner) + CharterPassengerModel.setStatusChangeListener(null) + } + override fun onStatusChange(currentStatus: OrderStatusEnum) { + mView?.setViewByOrderStatus(currentStatus) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt index b924719898..f258724977 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt @@ -1,10 +1,13 @@ package com.mogo.och.bus.passenger.ui import android.os.Bundle +import android.view.View import com.mogo.commons.mvp.MvpFragment import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.TaxiPassengerVideoPlay +import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter +import kotlinx.android.synthetic.m1.m1_order_fragment.* /** * @author: yangyakun @@ -27,6 +30,39 @@ class M1OrderFragment : } + fun setViewByOrderStatus(currentStatus: OrderStatusEnum){ + when (currentStatus) { + OrderStatusEnum.NoOrderUnuse -> { + // 无订单页面 + m1_order_noorder.visibility = View.VISIBLE + m1_order_early_end.visibility = View.GONE + eov_end_order.visibility = View.GONE + lsv_line_site.visibility = View.GONE + } + OrderStatusEnum.OrderNoLine -> { + // 选择线路页面 + m1_order_noorder.visibility = View.GONE + m1_order_early_end.visibility = View.GONE + eov_end_order.visibility = View.GONE + lsv_line_site.visibility = View.VISIBLE + } + OrderStatusEnum.OrdersWithLine -> { + // 选择线路页面 + m1_order_noorder.visibility = View.GONE + m1_order_early_end.visibility = View.GONE + eov_end_order.visibility = View.GONE + lsv_line_site.visibility = View.VISIBLE + } + OrderStatusEnum.NoOrderUse -> { + // 开门关门页面 + m1_order_noorder.visibility = View.GONE + m1_order_early_end.visibility = View.VISIBLE + eov_end_order.visibility = View.GONE + lsv_line_site.visibility = View.GONE + } + } + } + override fun createPresenter(): BusPassengerFunctionOrderPresenter { return BusPassengerFunctionOrderPresenter(this) } diff --git a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_order_fragment.xml b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_order_fragment.xml index c2bbe00149..7510a572b2 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_order_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_order_fragment.xml @@ -18,17 +18,24 @@ app:layout_constraintWidth_percent="0.53698"> +