[清扫车]准备出发按钮逻辑修改以及当前正在执行任务和大任务列表选取任务后子任务列表接口回调逻辑区分

This commit is contained in:
bxb
2023-02-11 19:11:18 +08:00
parent c271e96695
commit 1637c74630
11 changed files with 164 additions and 91 deletions

View File

@@ -19,7 +19,7 @@ interface ISweeperTaskCallback {
/**
* 获取子任务列表
*/
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?)
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?,isWorkingSubTask:Boolean)
/**
* 更新子任务状态

View File

@@ -194,13 +194,17 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 设置当前子任务列表数据
*/
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?) {
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?,isWorkingSubTask:Boolean) {
this.mSubTaskBean = subTaskBean
this.mSubTaskBean?.let {
setShowCurrentTaskPanelView(true)
setShowTaskListPanelView(false)
workModePanelView.visibility = View.VISIBLE
mCurrentSubPosition = it.sort - 1
mCurrentSubPosition = if (isWorkingSubTask){//如果是正在执行的子任务
it.sort - 1
}else{
0
}
currentTaskPanelView.setData(workModePanelView, it, mCurrentSubPosition, this, presenter)
setSubTaskData()
presenter?.getSubTaskDetail(mSubTaskId, mSubTaskType)//加载子任务详情包括轨迹信息
@@ -214,6 +218,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (isLastSubTask) {
setShowCurrentTaskPanelView(false)
setShowTaskListPanelView(true)
workModePanelView.visibility = View.GONE
return
}
when (typeEnum) {
@@ -234,8 +239,18 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
TaskStatusEnum.START_SUBTASK -> { //子任务开始
if (mSubTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//自动驾驶子任务
readyTaskBtn("暂停任务", true, true)
}else{
readyTaskBtn("准备出发", false, false)
}
setShowTaskListPanelView(false)
workModePanelView.visibility = View.VISIBLE
setShowCurrentTaskPanelView(true)
currentTaskPanelView.setCurrentData(mCurrentSubPosition)
workModePanelView.setSweeperFutianCleanSystemState(
mSubTaskType,
if (mCleanSystemState == null) SweeperFutianCmdUtil.buildSweeperFuTionCleanSystemStateMockData() else mCleanSystemState,
trafficDataView
)
}
}

View File

@@ -1,6 +1,5 @@
package com.mogo.och.sweeper.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
import android.content.Context;
@@ -33,6 +32,7 @@ import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.bean.BaseResponse;
import com.mogo.och.sweeper.bean.SubInfo;
@@ -86,9 +86,9 @@ public class SweeperTaskModel {
//自动驾驶是否到达子任务终点
private boolean isArriveSubTaskEndSite = false;
//当前子任务id
private int mSubTaskId=0;
private int mSubTaskId = 0;
// //当前是否最后一个子任务
private boolean mIsLastSubtask=false;
private boolean mIsLastSubtask = false;
//0: 代表没有启动过 1代表是启动第一次当>=1 代表是重试 每次子任务结束/主任务结束清空置为0
private volatile int firstStartAutopilot = 0;
@@ -106,6 +106,7 @@ public class SweeperTaskModel {
private SweeperTaskModel() {
}
public void init() {
mContext = AbsMogoApplication.getApp();
// 定位监听
@@ -180,6 +181,7 @@ public class SweeperTaskModel {
}
};
public void setSubTaskId(int mSubTaskId) {
this.mSubTaskId = mSubTaskId;
}
@@ -187,6 +189,7 @@ public class SweeperTaskModel {
public void setIsLastSubtask(boolean mIsLastSubtask) {
this.mIsLastSubtask = mIsLastSubtask;
}
public static List<SweeperRoutePlanningUpdateReqBean.Result> coordinateConverterWgsToGcjList(Context mContext,
List<MessagePad.Location> mogoLatLngList) {
List<SweeperRoutePlanningUpdateReqBean.Result> points = new ArrayList<>();
@@ -248,7 +251,7 @@ public class SweeperTaskModel {
mControllerStatusCallback.onCarLocationChanged(gnssInfo);
}
//子任务完成的围栏判断 子任务正在执行中,还未到达子任务终点
if (isSubTaskWorking&&!isArriveSubTaskEndSite) {
if (isSubTaskWorking && !isArriveSubTaskEndSite) {
judgeArrivedStation(gnssInfo);
}
}
@@ -268,6 +271,7 @@ public class SweeperTaskModel {
return;
}
}
/**
* 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地
*/
@@ -276,6 +280,7 @@ public class SweeperTaskModel {
//只去启动自动驾驶
startAutopilot(firstStartAutopilot >= 1);
}
/**
* 开启自动驾驶
*
@@ -308,9 +313,10 @@ public class SweeperTaskModel {
/**
* 获取任务子任务执行状态
*/
public boolean getSubWorking(){
return isSubTaskWorking;
public boolean getSubWorking() {
return isSubTaskWorking;
}
/**
* 关闭美化模式
*/
@@ -346,10 +352,11 @@ public class SweeperTaskModel {
return;
}
}
if (isArriveSubTaskEndSite)return;
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "行程日志-当前==subTaskId="
+ currentSubTaskDetail.getId());
//到达子任务终点 结束子任务
subTaskEnd(mSubTaskId,mIsLastSubtask);
subTaskEnd(mSubTaskId, mIsLastSubtask);
}
public void triggerStartServiceEvent(boolean isRestart, boolean send) {
@@ -402,11 +409,11 @@ public class SweeperTaskModel {
parameters.vehicleType = VEHICLE_TYPE;
parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
currentSubTaskDetail.getLineId(),
currentSubTaskDetail.getCsvFileUrl(),currentSubTaskDetail.getCsvFileMd5(),
currentSubTaskDetail.getTxtFileUrl(),currentSubTaskDetail.getTxtFileMd5(),
currentSubTaskDetail.getCsvFileUrl(), currentSubTaskDetail.getCsvFileMd5(),
currentSubTaskDetail.getTxtFileUrl(), currentSubTaskDetail.getTxtFileMd5(),
currentSubTaskDetail.getContrailSaveTime(), currentSubTaskDetail.getCarModel(),
currentSubTaskDetail.getCsvFileUrlDPQP(),currentSubTaskDetail.getCsvFileMd5DPQP(),
currentSubTaskDetail.getTxtFileUrlDPQP(),currentSubTaskDetail.getTxtFileMd5DPQP(),
currentSubTaskDetail.getCsvFileUrlDPQP(), currentSubTaskDetail.getCsvFileMd5DPQP(),
currentSubTaskDetail.getTxtFileUrlDPQP(), currentSubTaskDetail.getTxtFileMd5DPQP(),
currentSubTaskDetail.getContrailSaveTimeDPQP());
}
return parameters;
@@ -421,8 +428,8 @@ public class SweeperTaskModel {
public void onSuccess(BaseResponse<SweeperSubTaskBean> data) {
if (mSweeperTaskCallback != null && data != null) {
SweeperSubTaskBean sweeperSubTaskBean = data.getData();
if (sweeperSubTaskBean != null && sweeperSubTaskBean.getSubList()!=null&&sweeperSubTaskBean.getSubList().size() > 0) {
mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean);
if (sweeperSubTaskBean != null && sweeperSubTaskBean.getSubList() != null && sweeperSubTaskBean.getSubList().size() > 0) {
mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean,true);
} else {
getMainTaskList();
}
@@ -440,10 +447,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
});
@@ -464,10 +473,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -485,7 +496,7 @@ public class SweeperTaskModel {
/**
* 获取子任务列表
*/
public void getSubTaskList(int taskId,SweeperSubTaskBean sweeperSubTaskBean) {
public void getSubTaskList(int taskId, SweeperSubTaskBean sweeperSubTaskBean) {
SweeperServiceManager.getSubTaskList(taskId, mContext, new OchCommonServiceCallback<BaseResponse<List<SubInfo>>>() {
@Override
public void onSuccess(BaseResponse<List<SubInfo>> data) {
@@ -493,7 +504,7 @@ public class SweeperTaskModel {
List<SubInfo> list = data.getData();
if (list != null && list.size() > 0) {
sweeperSubTaskBean.setSubList(list);
mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean);
mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean,false);
} else {
getMainTaskList();
}
@@ -502,10 +513,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -523,29 +536,31 @@ public class SweeperTaskModel {
/**
* 获取子任务详情包括轨迹文件信息
*/
public void getSubTaskDetail(int subTaskId,SubTaskTypeEnum subTaskType) {
public void getSubTaskDetail(int subTaskId, SubTaskTypeEnum subTaskType) {
SweeperServiceManager.getSubTaskDetail(subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<SweeperSubTaskDetailBean>>() {
@Override
public void onSuccess(BaseResponse<SweeperSubTaskDetailBean> data) {
if (data != null) {
currentSubTaskDetail = data.getData();
if (currentSubTaskDetail!=null){
if (subTaskType==SubTaskTypeEnum.AUTOPILOT_SUBTYPE){//自动驾驶子任务
if (currentSubTaskDetail != null) {
mSweeperTaskCallback.setSubTakDetail(currentSubTaskDetail,subTaskType);
if (subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//自动驾驶子任务
//向自动驾驶发送要下载文件轨迹路径
SweeperTrajectoryManager.getInstance().syncTrajectoryInfo(currentSubTaskDetail);
updateAutopilotControlParameters();
}
}
}
}
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -569,10 +584,19 @@ public class SweeperTaskModel {
public void onSuccess(BaseResponse<Boolean> data) {
if (mSweeperTaskCallback != null && data != null) {
if (data.getData()) {
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.START_SUBTASK,false);
startBeautificationMode();
if (subTaskType==SubTaskTypeEnum.AUTOPILOT_SUBTYPE){//如果是自动驾驶子任务子开启自驾
isSubTaskWorking = true;
isArriveSubTaskEndSite = false;
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.START_SUBTASK, false);
if (subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//如果是自动驾驶子任务子开启自驾
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().startBeautificationMode();
}
startAutopilot(false);
}else{
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;//是否强制绘制引导线
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾
}
}
}
}
@@ -580,10 +604,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -601,23 +627,35 @@ public class SweeperTaskModel {
/**
* 子任务结束上报
*/
public void subTaskEnd(int subTaskId,boolean isLastSubTask) {
public void subTaskEnd(int subTaskId, boolean isLastSubTask) {
SweeperServiceManager.subTaskEnd(subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
if (mSweeperTaskCallback != null && data != null) {
if (data.getData()) {
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.END_SUBTASK,isLastSubTask);
isSubTaskWorking = false;
isArriveSubTaskEndSite = true;
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.END_SUBTASK, isLastSubTask);
if (isLastSubTask) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().closeBeautificationMode();
}
//结束自动驾驶
cancelAutoPilot();
}
}
}
}
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
if (isArriveSubTaskEndSite) return;
ToastUtils.showShort(msg);
}
}
}
@@ -628,6 +666,7 @@ public class SweeperTaskModel {
} else {
ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
}
}
});
}
@@ -635,14 +674,14 @@ public class SweeperTaskModel {
/**
* 子任务跳过上报
*/
public void subTaskSkip(int subTaskId,boolean isLastSubTask) {
public void subTaskSkip(int subTaskId, boolean isLastSubTask) {
SweeperServiceManager.subTaskSkip(subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
if (mSweeperTaskCallback != null && data != null) {
if (data.getData()) {
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.JUMP_OVER_SUBTASK,isLastSubTask);
if (isLastSubTask){//如果是最后一个子任务,则跳过完成后,调用结束子任务接口
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.JUMP_OVER_SUBTASK, isLastSubTask);
if (isLastSubTask) {//如果是最后一个子任务,则跳过完成后,调用结束子任务接口,这样后端可以才可以把整个大任务结束掉
subTaskEnd(subTaskId, true);
}
}
@@ -651,10 +690,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -683,10 +724,12 @@ public class SweeperTaskModel {
@Override
public void onFail(int code, String msg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
if (ToastUtilsOch.isCustomFastClick(5000)) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
} else {
ToastUtils.showShort(msg);
}
}
}
@@ -700,4 +743,8 @@ public class SweeperTaskModel {
}
});
}
//结束自动驾驶
public void cancelAutoPilot() {
CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
}
}

View File

@@ -153,11 +153,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
}
}
public void cancelAutoPilot() {
//结束自动驾驶
CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
}
@Override
public void startOpenAutopilot() {
@@ -261,8 +256,12 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* 开始任务
*/
public void startTask(int subTaskId, SubTaskTypeEnum subTaskType) {
if (SweeperTaskModel.getInstance().getSubWorking() && subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//如果任务正在执行中,被人工接管后掉出自驾,则只重启自动驾驶
SweeperTaskModel.getInstance().startAutopilot();
if (SweeperTaskModel.getInstance().getSubWorking()) {//如果任务正在执行中,被人工接管后掉出自驾,则只重启自动驾驶
if (subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE){
SweeperTaskModel.getInstance().startAutopilot();
}else{
}
} else {
SweeperTaskModel.getInstance().subTaskStart(subTaskId, subTaskType);
}
@@ -325,18 +324,12 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
}
@Override
public void setSubTaskBean(SweeperSubTaskBean subTaskBean) {
mView.setSubTaskBean(subTaskBean);
public void setSubTaskBean(SweeperSubTaskBean subTaskBean,boolean isWorkingSubTask) {
mView.setSubTaskBean(subTaskBean,isWorkingSubTask);
}
@Override
public void updateSubTaskStatus(TaskStatusEnum typeEnum, boolean isLastSubTask) {
if (isLastSubTask) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().closeBeautificationMode();
}
cancelAutoPilot();
}
mView.updateSubTaskStatus(typeEnum, isLastSubTask);
}

View File

@@ -22,6 +22,8 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
private var presenter: SweeperPresenter?=null
private var mCurrentPosition=-1
private var listTask:List<SubInfo>?=null
private var isStartTask:Boolean=false
private var mSubTaskType:SubTaskTypeEnum=SubTaskTypeEnum.AUTOPILOT_SUBTYPE
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
@@ -63,8 +65,12 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
}
}
readyTaskBtn.setOnClickListener {
//开始执行任务
startSubTask()
if (!isStartTask){
//开始执行任务
startSubTask()
}else{
isStartTask=false
}
}
}
@@ -72,15 +78,25 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
* 设置准备就绪按钮时都可以点击
*/
fun setEnableClickBtn(text:String,isClick:Boolean,isTaskWorking:Boolean) {
readyTaskBtn.text=text
readyTaskBtn.isClickable=isClick
readyTaskBtn.isSelected=isClick
if (isTaskWorking){
tvTaskState.text="正在作业"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working)
}else{
if (mSubTaskType==SubTaskTypeEnum.MANUAL_DRIVING_SUBTYPE){
tvTaskState.text="暂未准备"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready)
readyTaskBtn.text="准备出发"
readyTaskBtn.isClickable=false
readyTaskBtn.isSelected=false
isStartTask=false
}else{
readyTaskBtn.text=text
readyTaskBtn.isClickable=isClick
readyTaskBtn.isSelected=isClick
isStartTask=isTaskWorking
if (isTaskWorking){
tvTaskState.text="正在作业"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working)
}else{
tvTaskState.text="暂未准备"
tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready)
}
}
}
@@ -98,6 +114,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
*/
fun setCurrentData(mCurrentPosition:Int){
listTask?.let {
mSubTaskType=if (it[mCurrentPosition].taskType==SubTaskTypeEnum.AUTOPILOT_SUBTYPE.code) SubTaskTypeEnum.AUTOPILOT_SUBTYPE else SubTaskTypeEnum.MANUAL_DRIVING_SUBTYPE
if (it.size == 1) {
preSubTask.setData(it[mCurrentPosition], isSelect = true, isLastTask = true)
currentSubTask.visibility = View.INVISIBLE

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@drawable/sweeper_task_list_nor"/>
<item android:state_selected="true" android:drawable="@drawable/sweeper_ready"/>
<item android:state_selected="false" android:drawable="@drawable/sweeper_task_not_selected"/>
<item android:state_selected="true" android:drawable="@drawable/sweeper_task_selected"/>
</selector>

View File

@@ -78,7 +78,7 @@
android:id="@+id/tvTaskConfirm"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_116"
android:background="@drawable/sweeper_task_list_btn"
android:background="@drawable/sweeper_task_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -108,7 +108,7 @@
android:id="@+id/readyTaskBtn"
android:layout_width="match_parent"
android:layout_height="@dimen/sweeper_switch_line_btn_height_1"
android:background="@drawable/sweeper_ready"
android:background="@drawable/sweeper_task_btn"
android:gravity="center"
android:text="@string/sweeper_switch_line_btn"
android:textColor="@android:color/white"
@@ -117,5 +117,6 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="@dimen/dp_20"
android:clickable="false"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -10,7 +10,7 @@
<string name="sweeper_switch_line_start">起点: </string>
<string name="sweeper_switch_line_end">终点:</string>
<string name="sweeper_switch_line_btn_txt">确认</string>
<string name="sweeper_switch_line_btn">准备就绪</string>
<string name="sweeper_switch_line_btn">准备出发</string>
<string name="sweeper_switch_line_btn_warning1">自动驾驶中,不可切换路线</string>
<string name="sweeper_switch_line_btn_warning2">当前行程未完成,不可切换路线</string>
<string name="sweeper_no_task_tip">当前暂无任务</string>