mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
Persists todo task filter preferences for each task type
Saves the active to-do task filter to shared preferences, restoring the selected filter when the user returns.
This commit is contained in:
parent
49e1f2f9d1
commit
5139f74efa
2 changed files with 13 additions and 7 deletions
|
|
@ -580,11 +580,12 @@ open class TaskRecyclerViewFragment :
|
||||||
viewModel.userViewModel.user.observeOnce(this) {
|
viewModel.userViewModel.user.observeOnce(this) {
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
when (taskType) {
|
when (taskType) {
|
||||||
TaskType.TODO ->
|
TaskType.TODO -> {
|
||||||
viewModel.setActiveFilter(
|
viewModel.setActiveFilter(
|
||||||
TaskType.TODO,
|
TaskType.TODO,
|
||||||
Task.FILTER_ACTIVE
|
viewModel.getTaskFilterPreference(TaskType.TODO)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
TaskType.DAILY -> {
|
TaskType.DAILY -> {
|
||||||
if (!viewModel.initialPreferenceFilterSet) {
|
if (!viewModel.initialPreferenceFilterSet) {
|
||||||
|
|
|
||||||
|
|
@ -199,11 +199,8 @@ constructor(
|
||||||
if (activeFilters[type] == null) {
|
if (activeFilters[type] == null) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return if (TaskType.TODO == type) {
|
|
||||||
Task.FILTER_ACTIVE != activeFilters[type]
|
return Task.FILTER_ALL != activeFilters[type]
|
||||||
} else {
|
|
||||||
Task.FILTER_ALL != activeFilters[type]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun filter(tasks: List<Task>): List<Task> {
|
fun filter(tasks: List<Task>): List<Task> {
|
||||||
|
|
@ -259,6 +256,8 @@ constructor(
|
||||||
activeFilters[type] = activeFilter
|
activeFilters[type] = activeFilter
|
||||||
filterSets[type]?.value = Triple(searchQuery, activeFilter, tags)
|
filterSets[type]?.value = Triple(searchQuery, activeFilter, tags)
|
||||||
|
|
||||||
|
sharedPreferences.edit { putString("filter_${type.value}", activeFilter) }
|
||||||
|
|
||||||
if (activeFilters[TaskType.TODO] == Task.FILTER_COMPLETED) {
|
if (activeFilters[TaskType.TODO] == Task.FILTER_COMPLETED) {
|
||||||
viewModelScope.launchCatching {
|
viewModelScope.launchCatching {
|
||||||
taskRepository.retrieveCompletedTodos()
|
taskRepository.retrieveCompletedTodos()
|
||||||
|
|
@ -283,6 +282,12 @@ constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getTaskFilterPreference(
|
||||||
|
type: TaskType
|
||||||
|
): String {
|
||||||
|
return sharedPreferences.getString("filter_${type.value}", Task.FILTER_ALL) ?: Task.FILTER_ALL
|
||||||
|
}
|
||||||
|
|
||||||
fun createQuery(unfilteredData: OrderedRealmCollection<Task>): RealmQuery<Task>? {
|
fun createQuery(unfilteredData: OrderedRealmCollection<Task>): RealmQuery<Task>? {
|
||||||
if (!unfilteredData.isValid) {
|
if (!unfilteredData.isValid) {
|
||||||
return null
|
return null
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue