Handle sort result in task list fragment

pull/2533/head
Alex Baker 9 months ago
parent 77c86bbfb4
commit 20c81417a0

@ -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<Place>(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

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

Loading…
Cancel
Save