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