[6.1.2优化] 1、自驾倒计时变为5s 2、调整任务拉取失败重试逻辑
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 // 开启自驾闪烁动画
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
// 倒计时
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user