[Sweeper Cloud] fix: 大任务状态 增加 running状态;

refactor: 任务中止弹框 title和content 文案调整;
fix: 大任务状态展示issue ;
This commit is contained in:
aibingbing
2023-07-24 19:22:56 +08:00
parent 91e6f0fab5
commit 53083a27f6
4 changed files with 43 additions and 14 deletions

View File

@@ -481,6 +481,12 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
showNotice("任务已恢复")
ToastUtils.showLong("任务已恢复")
//更新任务列表中大任务状态
val builder = it.toBuilder()
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
mTaskInfo = builder.build()
getCurrentTaskView().setData(mTaskInfo, getCurrentRunningSubTaskPosition())
} else if (bigTaskStatus == SweeperCommon.TaskStatus.RUNNING) { //首次开始运行的时候,非恢复后的运行
//更新任务列表中大任务状态
val builder = it.toBuilder()
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
@@ -522,7 +528,6 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
else -> {
mDialog = sweeperCloudTaskResumeDialog()
var ttsString = "云端恢复任务,注意车辆即将启动!"
mCurrentSuspendSubTaskInfo?.also { suspendSub ->
val isAutoPoilotState =
@@ -542,6 +547,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
}
showNotice(ttsString)
mDialog = sweeperCloudTaskResumeDialog(ttsString)
}
}
mDialog?.show()
@@ -792,7 +798,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 大任务恢复弹框
*/
private fun sweeperCloudTaskResumeDialog(): SweeperCloudDialog? {
private fun sweeperCloudTaskResumeDialog(contentStr: String): SweeperCloudDialog? {
return createSweeperTaskResumeDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
@@ -809,7 +815,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
override fun onNext() {
}
})
}, contentStr)
}
/**

View File

@@ -271,9 +271,9 @@ object SweeperCloudTaskUtils {
): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
builder.titleStr = "子任务确认"
builder.contentStr = "请确认并执行${subTaskInfo.subTaskName}"
builder.contentStr = "请确认并执行子任务 ${subTaskInfo.subTaskName}"
builder.tipStr =
if (subTaskInfo.taskModel == TaskModel.MANUAL) "[需手动驾驶至终点${subTaskInfo.endLocation.siteName}]" else "[自动驾驶至终点${subTaskInfo.endLocation.siteName}]"
if (subTaskInfo.taskModel == TaskModel.MANUAL) "[需手动驾驶至终点 ${subTaskInfo.endLocation.siteName}]" else "[自动驾驶至终点 ${subTaskInfo.endLocation.siteName}请保持N档拉手刹再进入自动驾驶]"
builder.leftStr = "确认"
builder.middleStr = ""
builder.rightStr = ""
@@ -293,7 +293,12 @@ object SweeperCloudTaskUtils {
timeoutStr: String
): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
builder.titleStr = "任务结束"
val titleStr = when (stopTaskType) {
SweeperTaskStop.StopTaskType.ADVANCE -> "任务中止"
SweeperTaskStop.StopTaskType.EXCEPTION -> "任务异常结束"
else -> "任务结束"
}
builder.titleStr = titleStr
when (stopTaskType) {
//任务提前结束
SweeperTaskStop.StopTaskType.ADVANCE -> {
@@ -380,11 +385,12 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskResumeDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?
listener: SweeperCloudDialogClickListener?,
contentStr: String
): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
builder.titleStr = "任务恢复"
builder.contentStr = "云端恢复任务,注意车辆即将启动!"
builder.contentStr = contentStr
builder.tipStr = "【注意安全,坐稳扶好】"
builder.leftStr = "确认"
builder.middleStr = ""

View File

@@ -30,15 +30,20 @@ class SubTaskView : ConstraintLayout {
/**
* 设置子任务信息
*/
fun setData(taskInfo: SubTaskInfo,isLastTask: Boolean = false) {
fun setData(taskInfo: SubTaskInfo, isLastTask: Boolean = false) {
tvSubTaskName.text = taskInfo.subTaskName
tvSubTaskName.setTextColor(if (taskInfo.taskStatus==SweeperCommon.TaskStatus.RUNNING) Color.parseColor("#3BD2FF") else Color.parseColor("#FFFFFF"))
tvSubTaskName.setTextColor(
if (taskInfo.taskStatus == SweeperCommon.TaskStatus.RUNNING)
Color.parseColor("#3BD2FF")
else
Color.parseColor("#FFFFFF")
)
if (taskInfo.taskModel == TaskModel.MANUAL) {//人工驾驶子任务
ivManualDriving.visibility = View.VISIBLE
} else {
ivManualDriving.visibility = View.GONE
}
if (taskInfo.taskStatus==SweeperCommon.TaskStatus.RUNNING) {
if (taskInfo.taskStatus == SweeperCommon.TaskStatus.RUNNING) {
ivSubTask.setImageResource(R.drawable.sweeper_icon_select_subtask)
} else {
ivSubTask.setImageResource(R.drawable.sweeper_icon_not_select_subtask)

View File

@@ -1,5 +1,6 @@
package com.mogo.och.sweepercloud.view
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
@@ -14,7 +15,13 @@ import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.*
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.currentSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.lastSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.preSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvStartAuto
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskName
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskState
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskTime
/**
* 清扫车当前任务信息展示
@@ -85,10 +92,12 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
/**
* 设置当前任务数据
*/
@SuppressLint("SetTextI18n")
fun setData(
taskInfo: TaskInfo?,
currentPosition: Int = -1
) {
// 更新 任务名称、任务时间
taskInfo?.apply {
this@SweeperCurrentTaskInfoView.listTask = subListList
tvTaskName.text = taskName
@@ -102,13 +111,14 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
)
}"
}
// 更新大任务状态
updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.TO_START)
// 更新子任务列表
listTask?.let {
//特殊处理当前暂无执行中任务的情况
if (currentPosition == -1) {
updateTaskStateText(TaskStatus.TO_START)
setCurrentData(currentPosition + 1)
} else {
updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.RUNNING)
setCurrentData(currentPosition)
}
}
@@ -123,10 +133,12 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
tvTaskState.text = "任务执行中"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working)
}
SweeperCommon.TaskStatus.SUSPENDED -> {
tvTaskState.text = "任务已暂停"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready)
}
else -> {
tvTaskState.text = "任务待开始"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready)