From f281e2ec0f911b2f2d5afc8ec52c77331351bd80 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Fri, 6 Jun 2025 13:37:57 -0500 Subject: [PATCH] (WearOS) Removes task observer after all tasks are completed The task observer is now only removed after all tasks are completed, allowing due tasks to be checked. --- .../habitrpg/wearos/habitica/ui/activities/RYAActivity.kt | 6 +++++- .../habitrpg/wearos/habitica/ui/viewmodels/RYAViewModel.kt | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt index b67443d2f..4a1a81237 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt @@ -37,12 +37,16 @@ class RYAActivity : BaseActivity() { } else { binding.scrollView.isVisible = true createTaskListViews(value) - viewModel.tasks.removeObserver(this) + // only remove the observer if all tasks are completed + if (viewModel.areAllTasksCompleted(value)) { + viewModel.tasks.removeObserver(this) + } } } } ) + binding.ryaButton.setOnClickListener { binding.titleView.text = getString(R.string.check_off_yesterday) binding.descriptionView.isVisible = false diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/RYAViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/RYAViewModel.kt index c426f30fe..307041d73 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/RYAViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/RYAViewModel.kt @@ -72,4 +72,9 @@ constructor( appStateManager.endLoading() } } + + fun areAllTasksCompleted(tasks: List): Boolean { + return tasks.all { it.completed } + } + }