diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt index ef7bf5142..b1724e5f3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt @@ -581,12 +581,19 @@ open class TaskRecyclerViewFragment : if (it != null) { when (taskType) { TaskType.TODO -> { - viewModel.setActiveFilter( - TaskType.TODO, - viewModel.getTaskFilterPreference(TaskType.TODO) - ) + // Handle case where a initial filter preference for to-dos were set for FILTER_ALL + if (viewModel.getTaskFilterPreference(TaskType.TODO) == Task.FILTER_ALL) { + viewModel.setActiveFilter( + TaskType.TODO, + Task.FILTER_ACTIVE + ) + } else { + viewModel.setActiveFilter( + TaskType.TODO, + viewModel.getTaskFilterPreference(TaskType.TODO) + ) + } } - TaskType.DAILY -> { if (!viewModel.initialPreferenceFilterSet) { viewModel.initialPreferenceFilterSet = true diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt index aec24462b..84d806996 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt @@ -199,9 +199,12 @@ constructor( if (activeFilters[type] == null) { return false } - return if (TaskType.TODO == type) { - Task.FILTER_ACTIVE != activeFilters[type] + when(activeFilters[type]) { + Task.FILTER_ACTIVE -> false + Task.FILTER_ALL -> false + else -> true + } } else { Task.FILTER_ALL != activeFilters[type] } @@ -289,7 +292,7 @@ constructor( fun getTaskFilterPreference( type: TaskType ): String { - return sharedPreferences.getString("filter_${type.value}", Task.FILTER_ALL) ?: Task.FILTER_ALL + return sharedPreferences.getString("filter_${type.value}", Task.FILTER_ALL) ?: if (TaskType.TODO == type) Task.FILTER_ACTIVE else Task.FILTER_ALL } fun createQuery(unfilteredData: OrderedRealmCollection): RealmQuery? {