summaryrefslogtreecommitdiff
path: root/android/app/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/main/java/org')
-rw-r--r--android/app/src/main/java/org/terst/doot/widget/DootWidgetReceiver.kt7
1 files changed, 7 insertions, 0 deletions
diff --git a/android/app/src/main/java/org/terst/doot/widget/DootWidgetReceiver.kt b/android/app/src/main/java/org/terst/doot/widget/DootWidgetReceiver.kt
index 94ff4b6..83f0a7b 100644
--- a/android/app/src/main/java/org/terst/doot/widget/DootWidgetReceiver.kt
+++ b/android/app/src/main/java/org/terst/doot/widget/DootWidgetReceiver.kt
@@ -19,6 +19,13 @@ class DootWidgetReceiver : GlanceAppWidgetReceiver() {
) {
super.onUpdate(context, appWidgetManager, appWidgetIds)
RefreshWorker.runOnce(context)
+ // Self-healing: onEnabled only fires when the first widget instance is
+ // added, so if the periodic job is ever silently dropped (e.g. an app
+ // reinstall clears WorkManager's persisted schedule without the widget
+ // itself being removed/re-added), it would otherwise never come back
+ // until the user manually removes and re-adds the widget. schedule()
+ // uses KEEP, so this is a no-op when the job is already running.
+ RefreshWorker.schedule(context)
}
override fun onEnabled(context: Context) {