merge code

This commit is contained in:
qiji4215 2023-10-18 14:13:55 +08:00
parent 6c29e7f6c7
commit 884ec8a583
2 changed files with 73 additions and 6 deletions

View File

@ -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)
}
}

View File

@ -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()
}
/**
* 关闭任务
*/