[6.0.0] 开始倒计时120s或者10s拉取任务;演练任务120s拉取;接驾任务10s拉取;送驾任务乘客验证后拉取
This commit is contained in:
@@ -5,13 +5,13 @@ import com.mogo.och.taxi.bean.TrajectoryListRespBean
|
||||
|
||||
interface ITaxiTaskWithOrderCallback {
|
||||
fun onTaskWithOrderDataChanged(taskWithOrder: QueryCurrentTaskRespBean.Result?)
|
||||
fun onTaskCompleted(isOrderArrivedAtStart: Boolean, siteId: Long)
|
||||
fun onTaskCompleted(result: QueryCurrentTaskRespBean.Result)
|
||||
fun onTaskTrajectoryDataChanged(data: TrajectoryListRespBean?)
|
||||
fun onOrderCancel()
|
||||
fun onOrderArriveAtEnd(orderNo: String)
|
||||
fun onOrderTripInfoChanged(mileage: Float, duration: Int)
|
||||
fun onOrderJourneyCompleted()
|
||||
fun onStartAutopilot()
|
||||
fun onStartPrepareTask120s(isStart: Boolean)
|
||||
fun onStartPrepareTaskUI(delayTime: Long, isStart: Boolean)
|
||||
fun onTaskTripInfoLocalCalculateChanged(meters:Long, timeInSecond:Long)
|
||||
}
|
||||
@@ -1,4 +1,8 @@
|
||||
package com.mogo.och.taxi.constant/**
|
||||
package com.mogo.och.taxi.constant
|
||||
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
|
||||
/**
|
||||
* Created on 2023/8/7
|
||||
* taskType = 1 虚拟任务(演练任务), = 2 接驾任务(运营), = 3 //送驾任务(运营)
|
||||
*/
|
||||
@@ -18,5 +22,15 @@ enum class TaskTypeEnum(val code: Int) {
|
||||
}
|
||||
return None
|
||||
}
|
||||
|
||||
/**
|
||||
* taskType == ToOrderStartTask.code 接驾任务
|
||||
*/
|
||||
fun isToOrderStartTask(data: QueryCurrentTaskRespBean.Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
return data.taskType == ToOrderStartTask.code
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -177,7 +177,7 @@ public class DebugView @JvmOverloads constructor(
|
||||
initViewByData(taskWithOrder)
|
||||
}
|
||||
|
||||
override fun onTaskCompleted(isOrderArrivedAtStart: Boolean, siteId: Long) {
|
||||
override fun onTaskCompleted(result: QueryCurrentTaskRespBean.Result) {
|
||||
}
|
||||
|
||||
override fun onTaskTrajectoryDataChanged(data: TrajectoryListRespBean?) {
|
||||
@@ -198,7 +198,7 @@ public class DebugView @JvmOverloads constructor(
|
||||
override fun onStartAutopilot() {
|
||||
}
|
||||
|
||||
override fun onStartPrepareTask120s(isStart: Boolean) {
|
||||
override fun onStartPrepareTaskUI(delayTime: Long, isStart: Boolean) {
|
||||
}
|
||||
|
||||
override fun onTaskTripInfoLocalCalculateChanged(meters: Long, timeInSecond: Long) {
|
||||
|
||||
@@ -28,5 +28,5 @@ sealed class TaskWithOrderUIState {
|
||||
data class UpdateTaskTripLocalCalculateInfo(val meters: Long, val timeInSecond: Long) :
|
||||
TaskWithOrderUIState()
|
||||
|
||||
data class UpdatePrepareTaskDelay120S(val isStart: Boolean) : TaskWithOrderUIState()
|
||||
data class UpdatePrepareTaskDelay(val delayTime: Long, val isStart: Boolean) : TaskWithOrderUIState()
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ import com.mogo.och.taxi.constant.TaskTypeEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TIMER_PREPARE_TASK_INTERVAL_120S
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER
|
||||
import com.mogo.och.taxi.ui.base.TaxiFragment
|
||||
import com.mogo.och.taxi.utils.MapMakerManager
|
||||
@@ -165,7 +164,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
if (taskAndOrderUiState.driveToNearestStationTask != null) {
|
||||
updateViewByDriveToNearestStationTask(taskAndOrderUiState.driveToNearestStationTask)
|
||||
} else {
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
updatePrepareTaskDelayUI(0,false)
|
||||
initContainerView(false)
|
||||
removeAllMapMarker()
|
||||
}
|
||||
@@ -198,8 +197,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
)
|
||||
}
|
||||
|
||||
is TaskWithOrderUIState.UpdatePrepareTaskDelay120S -> {
|
||||
updatePrepareTaskDelay120SUI(taskAndOrderUiState.isStart)
|
||||
is TaskWithOrderUIState.UpdatePrepareTaskDelay -> {
|
||||
updatePrepareTaskDelayUI(taskAndOrderUiState.delayTime,taskAndOrderUiState.isStart)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -209,7 +208,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
/**
|
||||
* 更新120s倒计时
|
||||
*/
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean) {
|
||||
private fun updatePrepareTaskDelayUI(millisInFuture: Long, isStart: Boolean) {
|
||||
|
||||
if (!isStart) {
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
@@ -220,7 +219,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
|
||||
prepareTaskCountdownTv.visibility = View.VISIBLE
|
||||
mPrepareTasCountDownTimer =
|
||||
object : CountDownTimer(TIMER_PREPARE_TASK_INTERVAL_120S, 1000L) {// 5倒计时后开启自驾
|
||||
object : CountDownTimer(millisInFuture, 1000L) {// 5倒计时后开启自驾
|
||||
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
// 倒计时
|
||||
@@ -393,7 +392,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
taskTypeTv.text = resources.getString(R.string.task_exercise)
|
||||
startStationName.text = startSite.siteName
|
||||
endStationName.text = endSite.siteName
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
updatePrepareTaskDelayUI(0,false)
|
||||
updateStartAndEndStationPointByStatus(true)
|
||||
}
|
||||
|
||||
@@ -482,7 +481,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
}
|
||||
|
||||
private fun updateOrderUI(order: OrderDetail) {
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
updatePrepareTaskDelayUI(0,false)
|
||||
taskTypeTv.text = resources.getString(R.string.task_order)
|
||||
taskTypeTv.background =
|
||||
ContextCompat.getDrawable(
|
||||
@@ -621,7 +620,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
|
||||
override fun onDestroyView() {
|
||||
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
updatePrepareTaskDelayUI(0,false)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.mogo.och.taxi.bean.TrajectoryListRespBean
|
||||
import com.mogo.och.taxi.callback.ITaxiCarServiceCallback
|
||||
import com.mogo.och.taxi.callback.ITaxiTaskWithOrderCallback
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaskTypeEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager
|
||||
@@ -173,11 +174,11 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean) {
|
||||
private fun updatePrepareTaskDelayUI(delayTime: Long, isStart: Boolean) {
|
||||
d(TAG, "UpdatePrepareTaskDelay120SUI = $isStart")
|
||||
sendUiState {
|
||||
copy(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdatePrepareTaskDelay120S(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdatePrepareTaskDelay(delayTime,
|
||||
isStart
|
||||
)
|
||||
)
|
||||
@@ -223,13 +224,22 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
updateTaskAndOrderUi(result)
|
||||
}
|
||||
|
||||
override fun onTaskCompleted(isOrderArrivedAtStart: Boolean, siteId: Long) {
|
||||
d(TAG, "onTaskCompleted: isOrderArrivedAtStart=$isOrderArrivedAtStart, siteId=$siteId")
|
||||
if (isOrderArrivedAtStart) {
|
||||
TaxiTaskModel.removePrepareTaskDelay120S()
|
||||
TaxiTaskModel.prepareNextTask(siteId)
|
||||
} else {
|
||||
TaxiTaskModel.startPrepareTaskDelay120S(siteId)
|
||||
/**
|
||||
* 开始倒计时120s或者10s拉取任务
|
||||
* 演练任务120s拉取
|
||||
* 接驾任务10s拉取
|
||||
*/
|
||||
override fun onTaskCompleted(result: QueryCurrentTaskRespBean.Result) {
|
||||
d(TAG, "onTaskCompleted: ${result?.currentStatus}, siteId=${result?.endSite?.siteId}")
|
||||
if (QueryCurrentTaskRespBean.isUserArriveAtStart(result)) {
|
||||
TaxiTaskModel.removePrepareTaskDelay()
|
||||
TaxiTaskModel.prepareNextTask(0,result.endSite!!.siteId)
|
||||
}else {
|
||||
TaxiTaskModel.startPrepareTaskDelay(
|
||||
if (TaskTypeEnum.isToOrderStartTask(result))
|
||||
TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL
|
||||
else TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S,
|
||||
result.endSite!!.siteId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +270,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
//获取新的任务
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
|
||||
currentTaskWithOrder?.endSite?.also {
|
||||
TaxiTaskModel.startPrepareTaskDelay120S(it.siteId)
|
||||
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S,
|
||||
it.siteId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,10 +283,12 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始倒计时120拉取任务
|
||||
* 开始倒计时120s或者10s拉取任务
|
||||
* 演练任务120s拉取
|
||||
* 接驾任务10s拉取
|
||||
*/
|
||||
override fun onStartPrepareTask120s(isStart: Boolean) {
|
||||
updatePrepareTaskDelay120SUI(isStart)
|
||||
override fun onStartPrepareTaskUI(delayTime: Long, isStart: Boolean) {
|
||||
updatePrepareTaskDelayUI(delayTime, isStart)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -136,7 +136,7 @@ object TaxiTaskModel {
|
||||
|
||||
private val mCurrentTaskRoutePointsGcj: MutableList<MogoLocation> = ArrayList()
|
||||
|
||||
private var mPrepareTaskDelay120SRunnable: Runnable? = null
|
||||
private var mPrepareTaskDelayRunnable: Runnable? = null
|
||||
|
||||
fun addTaskWithOrderListener(tag: String, listener: ITaxiTaskWithOrderCallback) {
|
||||
if (mTaxiTaskWithOrderCallbackMap.containsKey(tag)) {
|
||||
@@ -743,12 +743,7 @@ object TaxiTaskModel {
|
||||
) {
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onTaskCompleted(
|
||||
QueryCurrentTaskRespBean.isUserArriveAtStart(
|
||||
result
|
||||
),
|
||||
result.endSite!!.siteId
|
||||
)
|
||||
listener.onTaskCompleted(result)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -922,7 +917,7 @@ object TaxiTaskModel {
|
||||
})
|
||||
}
|
||||
|
||||
fun prepareNextTask(siteId: Long) {
|
||||
fun prepareNextTask(delayTime: Long,siteId: Long) {
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 准备发送请求, siteId=$siteId")
|
||||
TaxiTaskWithOrderServiceManager.prepareTask(
|
||||
mContext,
|
||||
@@ -941,39 +936,39 @@ object TaxiTaskModel {
|
||||
DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg")
|
||||
d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg")
|
||||
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) {
|
||||
startPrepareTaskDelay120S(siteId)
|
||||
startPrepareTaskDelay(delayTime,siteId)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun startPrepareTaskDelay120S(siteId: Long) {
|
||||
removePrepareTaskDelay120S()
|
||||
fun startPrepareTaskDelay(delayTime: Long, siteId: Long) {
|
||||
removePrepareTaskDelay()
|
||||
|
||||
mPrepareTaskDelay120SRunnable = Runnable {
|
||||
prepareNextTask(siteId)
|
||||
mPrepareTaskDelayRunnable = Runnable {
|
||||
prepareNextTask(delayTime,siteId)
|
||||
}
|
||||
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStartPrepareTask120s(true)
|
||||
listener.onStartPrepareTaskUI(delayTime,true)
|
||||
}
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S / 1000}秒后prepareNextTask, siteId=$siteId")
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${delayTime / 1000}秒后prepareNextTask, siteId=$siteId")
|
||||
UiThreadHandler.postDelayed(
|
||||
mPrepareTaskDelay120SRunnable,
|
||||
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S
|
||||
mPrepareTaskDelayRunnable,
|
||||
delayTime
|
||||
)
|
||||
}
|
||||
|
||||
fun removePrepareTaskDelay120S() {
|
||||
if (mPrepareTaskDelay120SRunnable != null) {
|
||||
fun removePrepareTaskDelay() {
|
||||
if (mPrepareTaskDelayRunnable != null) {
|
||||
DebugView.printInfoMsg("[PrepareNextTask] removeCallbacks, 取消prepareNextTask倒计时")
|
||||
UiThreadHandler.removeCallbacks(mPrepareTaskDelay120SRunnable)
|
||||
UiThreadHandler.removeCallbacks(mPrepareTaskDelayRunnable)
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStartPrepareTask120s(false)
|
||||
listener.onStartPrepareTaskUI(0,false)
|
||||
}
|
||||
mPrepareTaskDelay120SRunnable = null
|
||||
mPrepareTaskDelayRunnable = null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user