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.FilterProvider
import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.filters.SearchFilter
import org.tasks.filters.getIcon
import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.TasksPreferences
@ -114,12 +115,9 @@ class MainActivityViewModel @Inject constructor(
)
}
updateFilters()
defaultFilterProvider.setLastViewedFilter(filter)
}
fun closeDrawer() {
_drawerOpen.update { false }
_state.update { it.copy(menuQuery = "") }
if (filter !is SearchFilter) {
defaultFilterProvider.setLastViewedFilter(filter)
}
}
fun setDrawerState(opened: Boolean) {
@ -238,4 +236,8 @@ class MainActivityViewModel @Inject constructor(
}
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() {
if ((mainViewModel.state.value.filter as? SearchFilter)?.query?.isNotBlank() == true) {
lifecycleScope.launch {
mainViewModel.resetFilter()
mainViewModel.openLastViewedFilter()
}
if (search.isActionViewExpanded) {
search.collapseActionView()

@ -56,7 +56,7 @@ class DefaultFilterProvider @Inject constructor(
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)

Loading…
Cancel
Save