[SweeperCloud] refactor: 如果是isPop=true, 发送收到消息回执滞后到弹框后点击确认,避免云控下发流程过快导致弹框冲突及不显示;

This commit is contained in:
aibingbing
2023-07-28 22:37:56 +08:00
parent a0f23353f7
commit e27c98d930

View File

@@ -228,14 +228,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
addTaskData()
mPresenter?.isHasTaskInfo(true)
// 默认发送接收到消息的ACK回执
mPresenter?.sendSweeperStartTaskResp(
taskInfo.taskId,
SweeperTask.StartTaskCode.RECEIVED
)
if (taskInfo.isPop) {
showReceivedBigTaskDialog()
} else {
// 默认发送接收到消息的ACK回执
mPresenter?.sendSweeperStartTaskResp(
taskInfo.taskId,
SweeperTask.StartTaskCode.RECEIVED
)
}
//设置任务进度
this.mSubMutableList?.let {
@@ -328,10 +328,12 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (taskId != it.taskId) {
return
}
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
if (isPop) {
sweeperCloudTaskStopDialog(taskId, stopTaskType, it)
} else {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
}
}
}
@@ -363,6 +365,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
// mLoadingDialog.showLoading()
// //ToastUtils.showLong("确认")
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
}
override fun onRefuseOrEnd() {
@@ -375,6 +379,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.OVER_TIME)
// mLoadingDialog.showLoading()
// //ToastUtils.showLong("倒计时")
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
}
override fun onNext() {
@@ -517,11 +523,6 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (it.taskId != taskId) {
return
}
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
if (isPop) {
//数据重复导致连续弹窗
if (mDialog != null && mDialog!!.isShowing) {
@@ -529,7 +530,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
when (actionType) {
SweeperTaskCloudSuspendResume.ActionType.SUSPENDED -> {
mDialog = sweeperCloudTaskSuspendDialog()
mDialog = sweeperCloudTaskSuspendDialog(it.taskId)
showNotice("云端暂停任务,注意车辆即将停车!")
}
@@ -553,10 +554,16 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
}
showNotice(ttsString)
mDialog = sweeperCloudTaskResumeDialog(ttsString)
mDialog = sweeperCloudTaskResumeDialog(ttsString, it.taskId)
}
}
mDialog?.show()
} else {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
}
}
}
@@ -668,16 +675,17 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (mTaskInfo?.taskId != taskId) return
val subInfo = getSubTaskInfoBySubId(subTaskId)
subInfo?.let {
// 发送接收到消息的ACK回执
mPresenter?.sendSweeperTaskConfirmResp(
taskId,
subTaskId,
SweeperTaskConfirm.TaskConfirmCode.RECEIVED
)
updateSubTaskInfo(taskId, subTaskId, SweeperCommon.TaskStatus.RUNNING)
if (isPop) {
showSubTaskConfirmDialog(taskId, subTaskId, it)
} else {
// 发送接收到消息的ACK回执
mPresenter?.sendSweeperTaskConfirmResp(
taskId,
subTaskId,
SweeperTaskConfirm.TaskConfirmCode.RECEIVED
)
}
}
}
@@ -705,6 +713,12 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// //mPresenter?.setPreLineId(-1)
// updateSubTaskInfo(taskId, subTaskId, SweeperCommon.TaskStatus.RUNNING)
// mLoadingDialog.showLoading()
// 发送接收到消息的ACK回执
mPresenter?.sendSweeperTaskConfirmResp(
taskId,
subTaskId,
SweeperTaskConfirm.TaskConfirmCode.RECEIVED
)
}
override fun onRefuseOrEnd() {
@@ -717,6 +731,12 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// //ToastUtils.showLong("倒计时结束")
// mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.OVER_TIME)
// mLoadingDialog.showLoading()
// 发送接收到消息的ACK回执
mPresenter?.sendSweeperTaskConfirmResp(
taskId,
subTaskId,
SweeperTaskConfirm.TaskConfirmCode.RECEIVED
)
}
override fun onNext() {
@@ -753,6 +773,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// mLoadingDialog.showLoading()
// addTaskData()
// mPresenter?.isHasTaskInfo(true)
// 默认发送接收到消息的ACK回执
mPresenter?.sendSweeperStartTaskResp(
it.taskId,
SweeperTask.StartTaskCode.RECEIVED
)
}
override fun onRefuseOrEnd() {
@@ -767,6 +792,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// resetTaskInfoPanel()
// mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.OVER_TIME)
// mLoadingDialog.showLoading()
// 默认发送接收到消息的ACK回执
mPresenter?.sendSweeperStartTaskResp(
it.taskId,
SweeperTask.StartTaskCode.RECEIVED
)
}
override fun onNext() {
@@ -781,10 +811,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 大任务暂停弹框
*/
private fun sweeperCloudTaskSuspendDialog(): SweeperCloudDialog? {
private fun sweeperCloudTaskSuspendDialog(taskId: String): SweeperCloudDialog? {
return createSweeperTaskSuspendDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
}
override fun onRefuseOrEnd() {
@@ -792,7 +826,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun onCountDownStop() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
}
override fun onNext() {
@@ -804,10 +842,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 大任务恢复弹框
*/
private fun sweeperCloudTaskResumeDialog(contentStr: String): SweeperCloudDialog? {
private fun sweeperCloudTaskResumeDialog(contentStr: String, taskId: String): SweeperCloudDialog? {
return createSweeperTaskResumeDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
}
override fun onRefuseOrEnd() {
@@ -815,7 +857,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun onCountDownStop() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
taskId,
SweeperTaskCloudSuspendResume.Code.RECEIVED
)
}
override fun onNext() {
@@ -861,7 +907,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
//开启线程执行起终点marker设置
val setMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_SWEEPER + TAG + "setMapMaker",
SceneConstant.M_SWEEPER + "-" +TAG + "-setMapMaker",
"threadName=${Thread.currentThread().name}, uuid=$uuid, latitude=$latitude, longitude=$longitude"
)
@@ -898,7 +944,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_SWEEPER + TAG + "RemoveMapMaker",
SceneConstant.M_SWEEPER + "-" +TAG + "-RemoveMapMaker",
"threadName=${Thread.currentThread().name}"
)
val overlayManager = CallerMapUIServiceManager.getOverlayManager()