Catch interruption during widget refresh

pull/3782/merge
Alex Baker 2 days ago
parent 22f63feede
commit 2d29672198

@ -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")
}
}

Loading…
Cancel
Save