diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiTaskWithOrderCallback.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiTaskWithOrderCallback.kt index a5cbefd872..59992d55aa 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiTaskWithOrderCallback.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiTaskWithOrderCallback.kt @@ -13,5 +13,5 @@ interface ITaxiTaskWithOrderCallback { fun onOrderJourneyCompleted() fun onStartAutopilot() - fun onStartPrepareTask120s() + fun onStartPrepareTask120s(isStart: Boolean) } \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 378e8580a2..9af8999448 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -192,9 +192,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), } is TaskWithOrderUIState.UpdatePrepareTaskDelay120S -> { - if (taskAndOrderUiState.isStart){ - updatePrepareTaskDelay120SUI(true) - } + updatePrepareTaskDelay120SUI(taskAndOrderUiState.isStart) } } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt index faa39fac99..320db28402 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -258,8 +258,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), /** * 开始倒计时120拉取任务 */ - override fun onStartPrepareTask120s() { - updatePrepareTaskDelay120SUI(true) + override fun onStartPrepareTask120s(isStart: Boolean) { + updatePrepareTaskDelay120SUI(isStart) } override fun onCarEndServiceSuccess( @@ -300,14 +300,6 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), currentTaskWithOrder: QueryCurrentTaskRespBean.Result? ) { VoiceNotice.showNotice("开始接单啦") - currentTaskWithOrder?.apply { - if (endSite != null) { - when { - currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return - currentStatus < TaskStatusEnum.CompleteTask.code -> return - } - } - } updateDriveToNearestStationTaskUI(driveToNearestStationTask) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index bcdb68c347..e57647c228 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -136,6 +136,8 @@ object TaxiTaskModel { private val mCurrentTaskRoutePointsGcj: MutableList = ArrayList() + private var mPrepareTaskDelay120SRunnable: Runnable? = null + fun addTaskWithOrderListener(tag: String, listener: ITaxiTaskWithOrderCallback) { if (mTaxiTaskWithOrderCallbackMap.containsKey(tag)) { return @@ -907,16 +909,27 @@ object TaxiTaskModel { } fun startPrepareTaskDelay120S(siteId: Long) { - DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask") + if (mPrepareTaskDelay120SRunnable != null){ + DebugView.printInfoMsg("[PrepareNextTask] removeCallbacks prepareNextTask120s") + UiThreadHandler.removeCallbacks(mPrepareTaskDelay120SRunnable) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onStartPrepareTask120s(false) + } + } + + if (mPrepareTaskDelay120SRunnable == null){ + mPrepareTaskDelay120SRunnable = Runnable { + prepareNextTask(siteId) + } + } mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value - listener.onStartPrepareTask120s() + listener.onStartPrepareTask120s(true) } - - UiThreadHandler.postDelayed({ - prepareNextTask(siteId) - }, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S) + DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask") + UiThreadHandler.postDelayed(mPrepareTaskDelay120SRunnable, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S) } /** @@ -994,6 +1007,14 @@ object TaxiTaskModel { DebugView.printInfoMsg("[开始接单] 请求success") d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data)) loginService?.queryLoginStatusByNet() + mCurrentTaskWithOrder?.apply { + if (endSite != null) { + when { + currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return + currentStatus < TaskStatusEnum.CompleteTask.code -> return + } + } + } mDriveToNearestStationTask = data.data mTaxiCarServiceCallback?.onCarStartServiceSuccess( mDriveToNearestStationTask,