From 1ffe37aa80d8c2def07e72cdb00006aac6492152 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Fri, 4 Aug 2023 19:25:39 +0800 Subject: [PATCH] =?UTF-8?q?[SweeperCloud]refactor:=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E6=97=B6=E6=9B=B4=E6=96=B0=20=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E8=BF=9B=E5=85=A5=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6?= =?UTF-8?q?=20=E6=8C=89=E9=92=AE=E6=A0=B7=E5=BC=8F=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E9=9C=80=E8=A6=81=E8=80=83=E8=99=91=E5=AD=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=B1=BB=E5=9E=8B=E5=92=8C=E5=AD=90=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 20 +- .../view/SweeperCurrentTaskInfoView.kt | 197 ++++++++++-------- 2 files changed, 126 insertions(+), 91 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt index 3e05f310ca..4a9e08e7a2 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt @@ -36,6 +36,7 @@ import com.mogo.och.sweepercloud.view.SweeperCurrentTaskInfoView import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable 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 import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel @@ -143,7 +144,10 @@ class SweeperFragment : BaseSweeperTabFragment { @@ -90,102 +90,119 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { } /** - * 设置当前任务数据 + * 根据 当前自动驾驶状态-是否是自动驾驶子任务-子任务是否在运行,更新【请求进入自动驾驶】按钮样式 */ - @SuppressLint("SetTextI18n") - fun setData( - taskInfo: TaskInfo?, - currentPosition: Int = -1 + fun updateStartAutoPilotBtnByAutoPilotState( + isManualAutoPilotState: Boolean, + isAutoSubTask: Boolean, + isSubTaskRunning: Boolean ) { - // 更新 任务名称、任务时间 - taskInfo?.apply { - this@SweeperCurrentTaskInfoView.listTask = subListList - tvTaskName.text = taskName - val calendarStart = DateTimeUtil.formatLongToCalendar(taskStartTime) - val calendarEnd = DateTimeUtil.formatLongToCalendar(taskEndTime) - tvTaskTime.text = - "${DateTimeUtil.formatCalendarToString(calendarStart, DateTimeUtil.HH_mm)}-${ - DateTimeUtil.formatCalendarToString( - calendarEnd, - DateTimeUtil.HH_mm - ) - }" - } - // 更新大任务状态 - updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.TO_START) - // 更新子任务列表 - listTask?.let { - //特殊处理当前暂无执行中任务的情况 - if (currentPosition == -1) { - setCurrentData(currentPosition + 1) - } else { - setCurrentData(currentPosition) - } + if (isManualAutoPilotState && isAutoSubTask && isSubTaskRunning) { + tvStartAuto.setTextColor(Color.parseColor("#FFFFFFFF")) + tvStartAuto.isSelected = true + } else { + tvStartAuto.setTextColor(Color.parseColor("#66FFFFFF")) + tvStartAuto.isSelected = false } } - /** - * 设置任务的状态 - */ - private fun updateTaskStateText(taskStatus: SweeperCommon.TaskStatus) { - when (taskStatus) { - SweeperCommon.TaskStatus.RUNNING -> { - tvTaskState.text = "任务执行中" - tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working) + /** + * 设置当前任务数据 + */ + @SuppressLint("SetTextI18n") + fun setData( + taskInfo: TaskInfo?, + currentPosition: Int = -1 + ) { + // 更新 任务名称、任务时间 + taskInfo?.apply { + this@SweeperCurrentTaskInfoView.listTask = subListList + tvTaskName.text = taskName + val calendarStart = DateTimeUtil.formatLongToCalendar(taskStartTime) + val calendarEnd = DateTimeUtil.formatLongToCalendar(taskEndTime) + tvTaskTime.text = + "${DateTimeUtil.formatCalendarToString(calendarStart, DateTimeUtil.HH_mm)}-${ + DateTimeUtil.formatCalendarToString( + calendarEnd, + DateTimeUtil.HH_mm + ) + }" } - - 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) - } - } - } - - /** - * 填充数据 - */ - private fun setCurrentData(currentPosition: Int) { - listTask?.let { - if (it.size == 1) { - preSubTask.setData(it[currentPosition], isLastTask = true) - currentSubTask.visibility = View.INVISIBLE - lastSubTask.visibility = View.INVISIBLE - } else if (it.size == 2) { - if (currentPosition == 0) { - preSubTask.setData(it[currentPosition]) - currentSubTask.setData(it[1], isLastTask = true) + // 更新大任务状态 + updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.TO_START) + // 更新子任务列表 + listTask?.let { + //特殊处理当前暂无执行中任务的情况 + if (currentPosition == -1) { + setCurrentData(currentPosition + 1) } else { - preSubTask.setData(it[currentPosition - 1]) - currentSubTask.setData(it[currentPosition], isLastTask = true) - } - preSubTask.visibility = View.VISIBLE - currentSubTask.visibility = View.VISIBLE - lastSubTask.visibility = View.GONE - } else { - preSubTask.visibility = View.VISIBLE - currentSubTask.visibility = View.VISIBLE - lastSubTask.visibility = View.VISIBLE - //当前正在执行的任务是第一个子任务 - if (currentPosition == 0) { - preSubTask.setData(it[currentPosition]) - currentSubTask.setData(it[1]) - lastSubTask.setData(it[2], isLastTask = true) - //当前正在执行的任务是最后一个子任务 - } else if (currentPosition == it.size - 1) { - preSubTask.setData(it[currentPosition - 2]) - currentSubTask.setData(it[currentPosition - 1]) - lastSubTask.setData(it[currentPosition], isLastTask = true) - } else { - preSubTask.setData(it[currentPosition - 1]) - currentSubTask.setData(it[currentPosition]) - lastSubTask.setData(it[currentPosition + 1], isLastTask = true) + setCurrentData(currentPosition) } } } - } -} \ No newline at end of file + + /** + * 设置任务的状态 + */ + private fun updateTaskStateText(taskStatus: SweeperCommon.TaskStatus) { + when (taskStatus) { + SweeperCommon.TaskStatus.RUNNING -> { + 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) + } + } + } + + /** + * 填充数据 + */ + private fun setCurrentData(currentPosition: Int) { + listTask?.let { + if (it.size == 1) { + preSubTask.setData(it[currentPosition], isLastTask = true) + currentSubTask.visibility = View.INVISIBLE + lastSubTask.visibility = View.INVISIBLE + } else if (it.size == 2) { + if (currentPosition == 0) { + preSubTask.setData(it[currentPosition]) + currentSubTask.setData(it[1], isLastTask = true) + } else { + preSubTask.setData(it[currentPosition - 1]) + currentSubTask.setData(it[currentPosition], isLastTask = true) + } + preSubTask.visibility = View.VISIBLE + currentSubTask.visibility = View.VISIBLE + lastSubTask.visibility = View.GONE + } else { + preSubTask.visibility = View.VISIBLE + currentSubTask.visibility = View.VISIBLE + lastSubTask.visibility = View.VISIBLE + //当前正在执行的任务是第一个子任务 + if (currentPosition == 0) { + preSubTask.setData(it[currentPosition]) + currentSubTask.setData(it[1]) + lastSubTask.setData(it[2], isLastTask = true) + //当前正在执行的任务是最后一个子任务 + } else if (currentPosition == it.size - 1) { + preSubTask.setData(it[currentPosition - 2]) + currentSubTask.setData(it[currentPosition - 1]) + lastSubTask.setData(it[currentPosition], isLastTask = true) + } else { + preSubTask.setData(it[currentPosition - 1]) + currentSubTask.setData(it[currentPosition]) + lastSubTask.setData(it[currentPosition + 1], isLastTask = true) + } + } + } + } + } \ No newline at end of file