diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt index 354acd0a2..6ce220be3 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt @@ -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 } diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt index 9c18159f0..bc792c3c1 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt @@ -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) /* * ====================================================================== diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index 6ce39adec..e7e0842b6 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -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) } diff --git a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt index 0fb8707a9..be9397763 100644 --- a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt @@ -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) } } }