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 c76ee2f7d..b44889ddd 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt @@ -40,7 +40,6 @@ import org.tasks.data.LocationDao import org.tasks.data.Place import org.tasks.data.TagDataDao import org.tasks.databinding.TaskListActivityBinding -import org.tasks.dialogs.SortSettingsActivity import org.tasks.dialogs.WhatsNewDialog import org.tasks.extensions.Context.nightMode import org.tasks.filters.PlaceFilter @@ -127,13 +126,6 @@ class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, Timer ?.getParcelableExtra(LocationPickerActivity.EXTRA_PLACE) ?.let { startActivity(getTaskListIntent(this, PlaceFilter(it))) } } - TaskListFragment.REQUEST_SORT -> - if (resultCode == RESULT_OK) { - sortChanged( - reload = data?.getBooleanExtra(SortSettingsActivity.EXTRA_FORCE_RELOAD, false) ?: false, - groupChange = data?.getBooleanExtra(SortSettingsActivity.EXTRA_CHANGED_GROUP, false) ?: false, - ) - } else -> super.onActivityResult(requestCode, resultCode, data) } @@ -433,16 +425,6 @@ class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, Timer } } - private fun sortChanged(reload: Boolean, groupChange: Boolean) { - if (groupChange) { - taskListFragment?.clearCollapsed() - } - localBroadcastManager.broadcastRefresh() - if (reload) { - openTaskListFragment(filter, true) - } - } - override fun onSupportActionModeStarted(mode: ActionMode) { super.onSupportActionModeStarted(mode) actionMode = mode 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 c90fb2ad8..558291db3 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -6,6 +6,7 @@ package com.todoroo.astrid.activity import android.app.Activity +import android.app.Activity.RESULT_OK import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -19,6 +20,7 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import androidx.activity.OnBackPressedCallback +import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.StringRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode @@ -170,6 +172,20 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL } } + private val sortRequest = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == RESULT_OK) { + result.data?.let { data -> + if (data.getBooleanExtra(SortSettingsActivity.EXTRA_FORCE_RELOAD, false)) { + activity?.recreate() + } + if (data.getBooleanExtra(SortSettingsActivity.EXTRA_CHANGED_GROUP, false)) { + taskAdapter.clearCollapsed() + } + } + } + } + private fun process(event: TaskListEvent) = when (event) { is TaskListEvent.TaskCreated -> onTaskCreated(event.uuid) @@ -417,13 +433,12 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL true } R.id.menu_sort -> { - requireActivity().startActivityForResult( + sortRequest.launch( SortSettingsActivity.getIntent( requireActivity(), filter.supportsManualSort(), filter.supportsAstridSorting() && preferences.isAstridSortEnabled, - ), - REQUEST_SORT + ) ) true } @@ -984,7 +999,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL private const val FRAG_TAG_PRIORITY_PICKER = "frag_tag_priority_picker" private const val REQUEST_LIST_SETTINGS = 10101 private const val REQUEST_TAG_TASKS = 10106 - const val REQUEST_SORT = 10107 private const val SEARCH_DEBOUNCE_TIMEOUT = 300L fun newTaskListFragment(context: Context, filter: Filter?): TaskListFragment { val fragment = TaskListFragment()