Return to last viewed filter after search

pull/3772/head
Alex Baker 4 months ago
parent 566c22c17e
commit 2f6348c53d

@ -39,6 +39,7 @@ import org.tasks.filters.CaldavFilter
import org.tasks.filters.Filter import org.tasks.filters.Filter
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.filters.SearchFilter
import org.tasks.filters.getIcon import org.tasks.filters.getIcon
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.TasksPreferences import org.tasks.preferences.TasksPreferences
@ -114,12 +115,9 @@ class MainActivityViewModel @Inject constructor(
) )
} }
updateFilters() updateFilters()
if (filter !is SearchFilter) {
defaultFilterProvider.setLastViewedFilter(filter) defaultFilterProvider.setLastViewedFilter(filter)
} }
fun closeDrawer() {
_drawerOpen.update { false }
_state.update { it.copy(menuQuery = "") }
} }
fun setDrawerState(opened: Boolean) { fun setDrawerState(opened: Boolean) {
@ -238,4 +236,8 @@ class MainActivityViewModel @Inject constructor(
} }
suspend fun getAccount(id: Long) = caldavDao.getAccount(id) suspend fun getAccount(id: Long) = caldavDao.getAccount(id)
fun openLastViewedFilter() = viewModelScope.launch {
setFilter(defaultFilterProvider.getLastViewedFilter())
}
} }

@ -285,7 +285,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
if ((mainViewModel.state.value.filter as? SearchFilter)?.query?.isNotBlank() == true) { if ((mainViewModel.state.value.filter as? SearchFilter)?.query?.isNotBlank() == true) {
lifecycleScope.launch { lifecycleScope.launch {
mainViewModel.resetFilter() mainViewModel.openLastViewedFilter()
} }
if (search.isActionViewExpanded) { if (search.isActionViewExpanded) {
search.collapseActionView() search.collapseActionView()

@ -56,7 +56,7 @@ class DefaultFilterProvider @Inject constructor(
fun setLastViewedFilter(filter: Filter) = setFilterPreference(filter, R.string.p_last_viewed_list) fun setLastViewedFilter(filter: Filter) = setFilterPreference(filter, R.string.p_last_viewed_list)
private suspend fun getLastViewedFilter() = getFilterFromPreference(R.string.p_last_viewed_list) suspend fun getLastViewedFilter() = getFilterFromPreference(R.string.p_last_viewed_list)
suspend fun getDefaultOpenFilter() = getFilterFromPreference(R.string.p_default_open_filter) suspend fun getDefaultOpenFilter() = getFilterFromPreference(R.string.p_default_open_filter)

Loading…
Cancel
Save