[6.1.2优化] 1、自驾倒计时变为5s 2、调整任务拉取失败重试逻辑

This commit is contained in:
wangmingjun
2023-10-24 17:17:56 +08:00
parent 739b4d79ac
commit eba3b3321a
5 changed files with 29 additions and 23 deletions

View File

@@ -1,8 +1,6 @@
package com.mogo.och.common.module.wigets;
import android.annotation.SuppressLint
import android.content.Context
import android.os.CountDownTimer
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
@@ -28,7 +26,7 @@ class StartAutopilotAnimationView @JvmOverloads constructor(
) : RelativeLayout(context, attrs, defStyleAttr){
companion object {
private const val ALL_CLOSE_TIMER = 10000L
private const val ALL_CLOSE_TIMER = 5000L
private const val TAG = "StartAutopilotAnimationView"
}
@@ -188,12 +186,12 @@ class StartAutopilotAnimationView @JvmOverloads constructor(
startAutopilotTip.visibility = VISIBLE
startTimer = object : CountDownTimerExt(ALL_CLOSE_TIMER, 1000L) {// 5倒计时后开启自驾
startTimer = object : CountDownTimerExt(ALL_CLOSE_TIMER, 1000L) {// 5s倒计时后开启自驾
override fun onTimerTick(value: Long) {
// 倒计时
UiThreadHandler.post {
startAutopilotTip.text = "${(value/1000).toInt()} 车辆即将自动开启自动驾驶"
startAutopilotTip.text = "${Math.ceil(value.toDouble()/1000).toInt()} 车辆即将自动开启自动驾驶"
}
playDI()
}
@@ -201,8 +199,8 @@ class StartAutopilotAnimationView @JvmOverloads constructor(
override fun onTimerFinish() {
//倒计时结束了...
UiThreadHandler.post {
SoundPoolHelper.getSoundPoolHelper().releaseSoundPool()
startAutopilotTip.text = "车辆正在自动开启自动驾驶"
dismiss(DirectionEnum.ALERT_WARNING_TOP)
}
}

View File

@@ -80,11 +80,15 @@ class TaxiUnmannedConst {
const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L
const val TIMER_PREPARE_TASK_INTERVAL_120S = 120 * 1000L //120s再次获取任务
const val TIMER_PREPARE_VIRTUAL_TASK_INTERVAL = 45 * 1000L //45s再次获取任务
const val START_AUTOPILOT_COUNTDOWN_INTERVAL = 10 * 1000L // 自动启动自驾倒数计时
const val START_PREPARE_TO_START_TASK_INTERVAL = 0L // 直接拉取接驾任务
const val START_AUTOPILOT_ANIMATION_INTERVAL = 12 * 1000L // 12s 开启自驾闪烁动画
const val START_PREPARE_TASK_RETRY_INTERVAL = 10 * 1000L // 直接拉取接驾任务
const val START_AUTOPILOT_COUNTDOWN_INTERVAL = 5 * 1000L // 自动启动自驾倒数计时
const val START_AUTOPILOT_ANIMATION_INTERVAL = 7 * 1000L // 开启自驾闪烁动画
}
}

View File

@@ -224,7 +224,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
prepareTaskCountdownTv.visibility = View.VISIBLE
mPrepareTasCountDownTimer =
object : CountDownTimer(millisInFuture, 1000L) {// 5倒计时后开启自驾
object : CountDownTimer(millisInFuture, 1000L) {// 倒计时后开启自驾
override fun onTick(millisUntilFinished: Long) {
// 倒计时

View File

@@ -283,18 +283,18 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
/**
* 1、有订单下(表示当前有订单或者未来有要执行的订单):
* 接驾任务需要10s拉取, 拉取时机在车辆前往上车点状态
* 接驾任务需要立即拉取, 拉取时机在车辆前往上车点状态
* 送驾任务需要立即拉取, 拉取时机在乘客已上车状态
* 2、在没有订单情况下
* 若当前到站的是前往标定站点, 则120s去拉取任务
* 若当前是演练任务到站, 120s去拉取任务
* 若当前到站的是前往标定站点, 则45s去拉取任务
* 若当前是演练任务到站, 45s去拉取任务
* 若当前是接驾任务到站, 此情况肯定是有订单的, 则走1
* 若当前到站的是送驾任务, 不去拉取, 需等待司机点击服务完成按钮后拉取
*/
if (result?.order != null){
if (QueryCurrentTaskRespBean.isOrderOnTheWayToStart(result)){
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL,
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TO_START_TASK_INTERVAL,
result?.endSite!!.siteId)
}else if (QueryCurrentTaskRespBean.isOrderUserArriveAtStart(result)) {
TaxiTaskModel.startPrepareTaskDelay(0, result?.endSite!!.siteId)
@@ -302,10 +302,10 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
}else{
if (result?.taskType == TaskTypeEnum.None.code){
TaxiTaskModel.startPrepareTaskDelay(
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S, result?.endSite!!.siteId)
TaxiUnmannedConst.TIMER_PREPARE_VIRTUAL_TASK_INTERVAL, result?.endSite!!.siteId)
}else{
TaxiTaskModel.startPrepareTaskDelay(
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S, result?.endSite!!.siteId)
TaxiUnmannedConst.TIMER_PREPARE_VIRTUAL_TASK_INTERVAL, result?.endSite!!.siteId)
}
}
@@ -339,13 +339,13 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
//获取新的任务
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
currentTaskWithOrder?.endSite?.also {
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S,
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.TIMER_PREPARE_VIRTUAL_TASK_INTERVAL,
it.siteId)
}
}
override fun onStartAutopilot(postDelayTime: Long) {
UiThreadHandler.postDelayed(startTaskRunnable, postDelayTime) // 10s后或者倒计时继续开启自驾, 状态流转
UiThreadHandler.postDelayed(startTaskRunnable, postDelayTime) // 5s后或者倒计时结束开启自驾, 状态流转
}
private val startTaskRunnable: Runnable = Runnable {

View File

@@ -912,7 +912,7 @@ object TaxiTaskModel {
})
}
fun prepareNextTask(delayTime: Long, siteId: Long) {
private fun prepareNextTask(siteId: Long) {
if (isPrepareingNextTask){
DebugView.printInfoMsg("[PrepareNextTask] 请求调用中, 直接return")
@@ -940,7 +940,9 @@ object TaxiTaskModel {
d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg")
isPrepareingNextTask = false
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) {
startPrepareTaskDelay(delayTime, siteId)
mCurrentTaskWithOrder?.endSite?.siteId?.also {
startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it)
}
}
}
@@ -951,7 +953,9 @@ object TaxiTaskModel {
d(TAG, "prepareNextTask onError, , net = ${NetworkUtils.isConnected(mContext)}")
isPrepareingNextTask = false
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) {
startPrepareTaskDelay(delayTime, siteId)
mCurrentTaskWithOrder?.endSite?.siteId?.also {
startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it)
}
}
}
})
@@ -961,7 +965,7 @@ object TaxiTaskModel {
removePrepareTaskDelay()
mPrepareTaskDelayRunnable = Runnable {
prepareNextTask(delayTime, siteId)
prepareNextTask(siteId)
}
mTaxiTaskWithOrderCallbackMap.forEach {
@@ -975,7 +979,7 @@ object TaxiTaskModel {
)
}
fun removePrepareTaskDelay() {
private fun removePrepareTaskDelay() {
if (mPrepareTaskDelayRunnable != null) {
DebugView.printInfoMsg("[PrepareNextTask] removeCallbacks, 取消prepareNextTask倒计时")
UiThreadHandler.removeCallbacks(mPrepareTaskDelayRunnable)