Fix clearing task fragments

pull/1830/head
Alex Baker 2 years ago
parent 626d2422b7
commit b23aa62d42

@ -356,9 +356,7 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
if (task == null) {
return
}
taskEditFragment?.let {
it.save()
}
taskEditFragment?.save(remove = false)
clearUi()
coroutineScope {
val freshTask = async { if (task.isNew) task else taskDao.fetch(task.id) ?: task }

@ -326,7 +326,7 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
return model
}
suspend fun save() = editViewModel.save()
suspend fun save(remove: Boolean = true) = editViewModel.save(remove)
/*
* ======================================================================

@ -673,7 +673,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
return onOptionsItemSelected(item)
}
fun onTaskListItemClicked(task: Task?) = lifecycleScope.launch {
private fun onTaskListItemClicked(task: Task?) = lifecycleScope.launch {
callbacks.onTaskListItemClicked(task)
}

@ -319,15 +319,15 @@ class TaskEditViewModel @Inject constructor(
originalAlarms.toHashSet() != selectedAlarms.value.toHashSet()
@MainThread
suspend fun save(): Boolean = withContext(NonCancellable) {
suspend fun save(remove: Boolean = true): Boolean = withContext(NonCancellable) {
if (cleared) {
return@withContext false
}
if (!hasChanges()) {
discard()
discard(remove)
return@withContext false
}
clear()
clear(remove)
task.title = if (title.isNullOrBlank()) context.getString(R.string.no_title) else title
task.dueDate = dueDate!!
task.priority = priority!!
@ -468,17 +468,20 @@ class TaskEditViewModel @Inject constructor(
discard()
}
suspend fun discard() {
suspend fun discard(remove: Boolean = true) {
if (task.isNew) {
timerPlugin.stopTimer(task)
}
clear()
clear(remove)
}
@MainThread
suspend fun clear() {
if (!cleared) {
cleared = true
suspend fun clear(remove: Boolean = true) {
if (cleared) {
return
}
cleared = true
if (remove) {
mainActivityEvents.emit(MainActivityEvent.ClearTaskEditFragment)
}
}
@ -486,7 +489,7 @@ class TaskEditViewModel @Inject constructor(
override fun onCleared() {
if (!cleared) {
runBlocking {
save()
save(remove = false)
}
}
}

Loading…
Cancel
Save