From 1637c74630a877d4d258f2fcd3b9c9afc59c6411 Mon Sep 17 00:00:00 2001 From: bxb Date: Sat, 11 Feb 2023 19:11:18 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=B8=85=E6=89=AB=E8=BD=A6]=E5=87=86=E5=A4=87?= =?UTF-8?q?=E5=87=BA=E5=8F=91=E6=8C=89=E9=92=AE=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BB=A5=E5=8F=8A=E5=BD=93=E5=89=8D=E6=AD=A3=E5=9C=A8?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BB=BB=E5=8A=A1=E5=92=8C=E5=A4=A7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E9=80=89=E5=8F=96=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=90=8E=E5=AD=90=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=9B=9E=E8=B0=83=E9=80=BB=E8=BE=91=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweeper/callback/ISweeperTaskCallback.kt | 2 +- .../och/sweeper/fragment/SweeperFragment.kt | 19 +- .../och/sweeper/model/SweeperTaskModel.java | 165 +++++++++++------- .../sweeper/presenter/SweeperPresenter.java | 23 +-- .../view/SweeperCurrentTaskInfoView.kt | 35 +++- ...task_list_btn.xml => sweeper_task_btn.xml} | 4 +- ..._nor.xml => sweeper_task_not_selected.xml} | 0 ...er_ready.xml => sweeper_task_selected.xml} | 0 .../main/res/layout/fragment_och_sweeper.xml | 2 +- .../res/layout/sweeper_current_task_info.xml | 3 +- .../src/main/res/values/strings.xml | 2 +- 11 files changed, 164 insertions(+), 91 deletions(-) rename OCH/mogo-och-sweeper/src/main/res/drawable/{sweeper_task_list_btn.xml => sweeper_task_btn.xml} (81%) rename OCH/mogo-och-sweeper/src/main/res/drawable/{sweeper_task_list_nor.xml => sweeper_task_not_selected.xml} (100%) rename OCH/mogo-och-sweeper/src/main/res/drawable/{sweeper_ready.xml => sweeper_task_selected.xml} (100%) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt index ddde01606f..1f83ed73da 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt @@ -19,7 +19,7 @@ interface ISweeperTaskCallback { /** * 获取子任务列表 */ - fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?) + fun setSubTaskBean(subTaskBean: SweeperSubTaskBean?,isWorkingSubTask:Boolean) /** * 更新子任务状态 diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt index cc74cd26df..4b902bf1f6 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt @@ -194,13 +194,17 @@ class SweeperFragment : BaseSweeperTabFragment { //子任务开始 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 + ) } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperTaskModel.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperTaskModel.java index 26c381015b..d3af6062c2 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperTaskModel.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperTaskModel.java @@ -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 coordinateConverterWgsToGcjList(Context mContext, List mogoLatLngList) { List 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 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>>() { @Override public void onSuccess(BaseResponse> data) { @@ -493,7 +504,7 @@ public class SweeperTaskModel { List 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>() { @Override public void onSuccess(BaseResponse 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 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>() { @Override public void onSuccess(BaseResponse 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>() { @Override public void onSuccess(BaseResponse 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(); + } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java index a793d97873..85387edd6d 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java @@ -153,11 +153,6 @@ public class SweeperPresenter extends Presenter } } - public void cancelAutoPilot() { - //结束自动驾驶 - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - } - @Override public void startOpenAutopilot() { @@ -261,8 +256,12 @@ public class SweeperPresenter extends Presenter * 开始任务 */ 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 } @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); } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt index 841d7436e3..d0f6b714f9 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt @@ -22,6 +22,8 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { private var presenter: SweeperPresenter?=null private var mCurrentPosition=-1 private var listTask:List?=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 diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_btn.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml similarity index 81% rename from OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_btn.xml rename to OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml index bcf6d59bcf..6541e1bc66 100644 --- a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_btn.xml +++ b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_nor.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_not_selected.xml similarity index 100% rename from OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_nor.xml rename to OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_not_selected.xml diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_ready.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_selected.xml similarity index 100% rename from OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_ready.xml rename to OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_selected.xml diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/fragment_och_sweeper.xml b/OCH/mogo-och-sweeper/src/main/res/layout/fragment_och_sweeper.xml index efd874b9ab..4e387255f5 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/fragment_och_sweeper.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/fragment_och_sweeper.xml @@ -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" diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml index 9a10f4f0d3..676d2e94fb 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml @@ -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" /> \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/values/strings.xml b/OCH/mogo-och-sweeper/src/main/res/values/strings.xml index 99c55aa65a..c6e6278402 100644 --- a/OCH/mogo-och-sweeper/src/main/res/values/strings.xml +++ b/OCH/mogo-och-sweeper/src/main/res/values/strings.xml @@ -10,7 +10,7 @@ 起点: 终点: 确认 - 准备就绪 + 准备出发 自动驾驶中,不可切换路线 当前行程未完成,不可切换路线 当前暂无任务