From 2d29672198073f0b8141b7a000553405f30fb5fa Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 29 Dec 2025 17:51:26 -0600 Subject: [PATCH] Catch interruption during widget refresh --- .../tasks/widget/TasksWidgetViewFactory.kt | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt index 059b91a2e..e1be769c6 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt @@ -77,21 +77,25 @@ internal class TasksWidgetViewFactory( Timber.d("Skipping stale factory: expected $filterId, current ${widgetPreferences.filterId}") return } - runBlocking { - val collapsed = widgetPreferences.collapsed - tasks = SectionedDataSource( - taskDao.fetchTasks(getQuery(filter)), - disableGroups, - settings.groupMode, - widgetPreferences.subtaskMode, - collapsed, - widgetPreferences.completedTasksAtBottom, - ) - collapsed.toMutableSet().let { - if (it.retainAll(tasks.getSectionValues().toSet())) { - widgetPreferences.collapsed = it + try { + runBlocking { + val collapsed = widgetPreferences.collapsed + tasks = SectionedDataSource( + taskDao.fetchTasks(getQuery(filter)), + disableGroups, + settings.groupMode, + widgetPreferences.subtaskMode, + collapsed, + widgetPreferences.completedTasksAtBottom, + ) + collapsed.toMutableSet().let { + if (it.retainAll(tasks.getSectionValues().toSet())) { + widgetPreferences.collapsed = it + } } } + } catch (e: InterruptedException) { + Timber.w("Widget update interrupted") } }