Fix default dailies filter

Default dailies filter options remain selected/unselected after returning from task
This commit is contained in:
Hafiz 2022-08-09 18:29:35 -04:00
parent c18e009af2
commit a7ae100f2b
2 changed files with 25 additions and 20 deletions

View file

@ -321,6 +321,8 @@ open class TaskRecyclerViewFragment : BaseFragment<FragmentRefreshRecyclerviewBi
.doOnNext { recyclerAdapter?.showAdventureGuide = !it.hasCompletedOnboarding }
.subscribe({ recyclerAdapter?.user = it }, RxErrorHandler.handleEmptyError())
)
setPreferenceTaskFilters()
}
private fun updateTaskSubscription(ownerID: String?) {
@ -458,26 +460,6 @@ open class TaskRecyclerViewFragment : BaseFragment<FragmentRefreshRecyclerviewBi
}
}
override fun onStart() {
super.onStart()
(activity as? MainActivity)?.viewModel?.user?.observeOnce(this) {
if (it != null) {
when (taskType) {
TaskType.TODO -> viewModel.setActiveFilter(
TaskType.TODO,
Task.FILTER_ACTIVE
)
TaskType.DAILY -> {
if (it.isValid && it.preferences?.dailyDueDefaultView == true) {
viewModel.setActiveFilter(TaskType.DAILY, Task.FILTER_ACTIVE)
}
}
else -> {}
}
}
}
}
override fun onResume() {
super.onResume()
context?.let { recyclerAdapter?.taskDisplayMode = configManager.taskDisplayMode(it) }
@ -496,6 +478,28 @@ open class TaskRecyclerViewFragment : BaseFragment<FragmentRefreshRecyclerviewBi
}
}
private fun setPreferenceTaskFilters() {
(activity as? MainActivity)?.viewModel?.user?.observeOnce(this) {
if (it != null) {
when (taskType) {
TaskType.TODO -> viewModel.setActiveFilter(
TaskType.TODO,
Task.FILTER_ACTIVE
)
TaskType.DAILY -> {
if (!viewModel.initialPreferenceFilterSet) {
viewModel.initialPreferenceFilterSet = true
if (it.isValid && it.preferences?.dailyDueDefaultView == true) {
viewModel.setActiveFilter(TaskType.DAILY, Task.FILTER_ACTIVE)
}
}
}
else -> {}
}
}
}
}
private fun openTaskForm(task: Task) {
if (Date().time - (TasksFragment.lastTaskFormOpen?.time ?: 0) < 2000 || !task.isValid || !canEditTasks) {
return

View file

@ -49,6 +49,7 @@ class TasksViewModel : BaseViewModel() {
val ownerID: MutableLiveData<String?> by lazy {
MutableLiveData()
}
var initialPreferenceFilterSet: Boolean = false
val isPersonalBoard: Boolean
get() {