[Sweeper-cloud] refactor: 大小任务状态枚举统一;业务处理任务结束/暂停 状态同步;

This commit is contained in:
aibingbing
2023-07-20 16:03:33 +08:00
parent feb90b4274
commit 306f6a17c0
3 changed files with 22 additions and 18 deletions

View File

@@ -50,7 +50,7 @@ interface ISweeperCloudTaskCallback {
/**
* 云端同步大任务状态
*/
fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperBigTaskStatus.BigTaskStatus)
fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperCommon.TaskStatus)
/**
* 设置轨迹坐标点集合
*/

View File

@@ -194,7 +194,6 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
getCurrentTaskView().setData(taskInfo, getCurrentRunningSubTaskPosition())
setShowCurrentTaskPanelView(true)
addTaskData()
mPresenter?.isHasTaskInfo(true)
} else {//云端下发的大任务信息需要弹窗提示V3.2.0开始不需要安全员确认接取任务,只能默认接收)
//是否需要弹窗确认
@@ -292,11 +291,12 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
mPresenter?.isHasTaskInfo(false)
resetTaskInfoPanel()
ToastUtils.showLong("任务已结束")
if (stopTaskType == SweeperTaskStop.StopTaskType.NORMAL) {
mDialog = sweeperCloudTaskNormalEndDialog()
showNotice("任务已结束")
ToastUtils.showLong("任务已结束")
} else {
// 产品确认有弹框时不需要同步弹toast,只需有TTS
mDialog = createSweeperTaskEndDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
// mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
@@ -355,8 +355,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
private fun sweeperCloudTaskExceptionEndDialog(isCancel: Boolean): SweeperCloudDialog? {
return createSweeperTaskExceptionEndDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
ToastUtils.showLong("任务已结束")
resetTaskInfoPanel()
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
}
override fun onRefuseOrEnd() {
@@ -364,8 +364,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun onCountDownStop() {
ToastUtils.showLong("任务已结束")
resetTaskInfoPanel()
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
}
override fun onNext() {
@@ -378,7 +378,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 云端同步大任务状态
*/
fun onSweeperCloudBigTaskStatus(taskId: String, bigTaskStatus: SweeperBigTaskStatus.BigTaskStatus) {
fun onSweeperCloudBigTaskStatus(taskId: String, bigTaskStatus: SweeperCommon.TaskStatus) {
//隐藏loading
mLoadingDialog.hideLoading()
mTaskInfo?.let {
@@ -386,24 +386,28 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (it.taskId != taskId) {
return
}
//大任务处于取消状态 异常状态pad端都显示无任务列表
if (bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE
|| bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL
|| bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.FINISHED) {
//大任务处于取消状态/异常结束/正常结束 时都代表大任务结束了,任务列表切换为无任务列表状态
if (bigTaskStatus == SweeperCommon.TaskStatus.CANCEL
|| bigTaskStatus == SweeperCommon.TaskStatus.ABNORMAL
|| bigTaskStatus == SweeperCommon.TaskStatus.FINISHED) {
mPresenter?.isHasTaskInfo(false)
//数据重复导致连续弹窗
if (mDialog != null && mDialog!!.isShowing) {
return
}
mDialog = if (bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE
|| bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL)
sweeperCloudTaskExceptionEndDialog(bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE)
mDialog = if (bigTaskStatus == SweeperCommon.TaskStatus.CANCEL
|| bigTaskStatus == SweeperCommon.TaskStatus.ABNORMAL)
sweeperCloudTaskExceptionEndDialog(bigTaskStatus == SweeperCommon.TaskStatus.CANCEL)
else
sweeperCloudTaskNormalEndDialog()
mDialog?.show()
showNotice("任务已结束")
} else if (bigTaskStatus == SweeperBigTaskStatus.BigTaskStatus.SUSPENDED) {// 暂停
showNotice("任务已结束")
resetTaskInfoPanel()
} else if (bigTaskStatus == SweeperCommon.TaskStatus.SUSPENDED) {// 暂停
showNotice("任务已暂停")
ToastUtils.showLong("任务已暂停")
//更新任务列表中大任务状态
}
}
}

View File

@@ -212,7 +212,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
}
@Override
public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperBigTaskStatus.BigTaskStatus bigTaskStatus) {
public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperCommon.TaskStatus bigTaskStatus) {
ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus));
}