From 884ec8a583d2761d4f66a7e058ea2a5552dcf564 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Wed, 18 Oct 2023 14:13:55 +0800 Subject: [PATCH] merge code --- .../ui/fragment/tasklist/TaskListFragment.kt | 23 ++++++-- .../ui/fragment/tasklist/TaskViewModel.kt | 56 +++++++++++++++++++ 2 files changed, 73 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt index 6d70679d..5fa3f914 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt @@ -89,8 +89,15 @@ class TaskListFragment : BaseFragment() { deleteItem.background = requireContext().getDrawable(R.color.red) deleteItem.setTextColor(requireContext().resources.getColor(R.color.white)) rightMenu.addMenuItem(deleteItem) - } + val resetDownLoad = SwipeMenuItem(context) + resetDownLoad.height = Util.convertDpToPx(requireContext(), 60) + resetDownLoad.width = Util.convertDpToPx(requireContext(), 80) + resetDownLoad.text = "重新下载" + resetDownLoad.background = requireContext().getDrawable(R.color.btn_bg_blue) + resetDownLoad.setTextColor(requireContext().resources.getColor(R.color.white)) + rightMenu.addMenuItem(resetDownLoad) + } val layoutManager = LinearLayoutManager(context) //// 设置 RecyclerView 的固定大小,避免在滚动时重新计算视图大小和布局,提高性能 @@ -104,11 +111,15 @@ class TaskListFragment : BaseFragment() { binding.taskListRecyclerview.setOnItemMenuClickListener { menuBridge, position -> menuBridge.closeMenu() val taskBean = adapter.data[position] - if (taskBean.syncStatus != FileManager.Companion.FileUploadStatus.DONE) { - Toast.makeText(context, "数据未上传,不允许关闭!", Toast.LENGTH_SHORT) - .show() - } else { - viewModel.removeTask(requireContext(), taskBean) + if(menuBridge.position==0){ + if (taskBean.syncStatus != FileManager.Companion.FileUploadStatus.DONE) { + Toast.makeText(context, "数据未上传,不允许关闭!", Toast.LENGTH_SHORT) + .show() + } else { + viewModel.removeTask(requireContext(), taskBean) + } + }else{ + viewModel.resetDownload(requireContext(), taskBean) } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt index 358f63c7..682849a0 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt @@ -410,6 +410,62 @@ class TaskViewModel @Inject constructor( } } + /** + * 重新下载数据任务 + */ + fun resetDownload(context: Context, taskBean: TaskBean){ + val mDialog = FirstDialog(context) + mDialog.setTitle("提示?") + mDialog.setMessage("是否重置下载状态,请确认!") + mDialog.setPositiveButton( + "确定" + ) { dialog, _ -> + dialog.dismiss() + viewModelScope.launch(Dispatchers.IO) { + //删除已下载的数据 + val fileTemp = File("${Constant.DOWNLOAD_PATH}${taskBean.evaluationTaskName}_${taskBean.dataVersion}.zip") + if(fileTemp.exists()){ + fileTemp.deleteOnExit() + } + val taskFileTemp = File(Constant.USER_DATA_PATH + "/${taskBean.id}") + //重命名 + if(taskFileTemp.exists()){ + taskFileTemp.renameTo(File(Constant.USER_DATA_PATH + "/${taskBean.id}-back-${DateTimeUtil.getNowDate().time}")) + } + //将下载状态修改已下载 + val realm = realmOperateHelper.getRealmDefaultInstance() + taskBean.syncStatus = FileManager.Companion.FileUploadStatus.NONE + taskBean.status = FileManager.Companion.FileDownloadStatus.NONE + realm.executeTransaction { r -> + r.copyToRealmOrUpdate(taskBean) + } + val nowTime: Long = DateTimeUtil.getNowDate().time + val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L + val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE + val objects = + realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or() + .between("operationTime", beginNowTime, nowTime) + .equalTo("syncStatus", syncUpload).findAll() + val taskList = realm.copyFromRealm(objects) + for (item in taskList) { + FileManager.checkOMDBFileInfo(item) + } + liveDataTaskList.postValue(taskList) + realm.close() + withContext(Dispatchers.Main) { + setSelectTaskBean(taskBean) + } + } + } + mDialog.setNegativeButton( + "取消" + ) { _, _ -> + liveDataCloseTask.postValue(false) + mDialog.dismiss() + } + mDialog.show() + } + /** * 关闭任务 */