From a63936a035c2249a87955a8115a4cae862a5bc5f Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 12 Sep 2023 20:00:14 +0800 Subject: [PATCH] =?UTF-8?q?[6.0.0]=20=E5=BC=80=E5=A7=8B=E5=80=92=E8=AE=A1?= =?UTF-8?q?=E6=97=B6120s=E6=88=96=E8=80=8510s=E6=8B=89=E5=8F=96=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1;=E6=BC=94=E7=BB=83=E4=BB=BB=E5=8A=A1120s=E6=8B=89?= =?UTF-8?q?=E5=8F=96;=E6=8E=A5=E9=A9=BE=E4=BB=BB=E5=8A=A110s=E6=8B=89?= =?UTF-8?q?=E5=8F=96;=E9=80=81=E9=A9=BE=E4=BB=BB=E5=8A=A1=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E9=AA=8C=E8=AF=81=E5=90=8E=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/ITaxiTaskWithOrderCallback.kt | 4 +- .../mogo/och/taxi/constant/TaskTypeEnum.kt | 16 +++++++- .../com/mogo/och/taxi/ui/debug/DebugView.kt | 4 +- .../com/mogo/och/taxi/ui/task/TaskUiState.kt | 2 +- .../taxi/ui/task/TaxiCurrentTaskFragment.kt | 17 ++++---- .../taxi/ui/task/TaxiCurrentTaskViewModel.kt | 39 ++++++++++++------- .../mogo/och/taxi/ui/task/TaxiTaskModel.kt | 39 ++++++++----------- 7 files changed, 71 insertions(+), 50 deletions(-) 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 c6662482e8..4d21dca5fe 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 @@ -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) } \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt index 89f59132c6..9fbe236531 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt @@ -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 + } } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt index a66439d3d1..e0b24bcf7b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt @@ -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) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt index 1d90ef777a..192297a0ee 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt @@ -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() } 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 7bce679731..9f91fde18b 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 @@ -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() } 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 7d763f9612..af3a2451f2 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 @@ -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(), } } - 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(), 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(), //获取新的任务 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(), } /** - * 开始倒计时120拉取任务 + * 开始倒计时120s或者10s拉取任务 + * 演练任务120s拉取 + * 接驾任务10s拉取 */ - override fun onStartPrepareTask120s(isStart: Boolean) { - updatePrepareTaskDelay120SUI(isStart) + override fun onStartPrepareTaskUI(delayTime: Long, isStart: Boolean) { + updatePrepareTaskDelayUI(delayTime, isStart) } /** 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 4d2b30b051..fd512d6e9d 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,7 +136,7 @@ object TaxiTaskModel { private val mCurrentTaskRoutePointsGcj: MutableList = 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 } }