From 192351a4b8cc52fb6ae0cdc0b3869b7f02380a14 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sun, 7 Sep 2025 10:47:25 -0500 Subject: [PATCH] Add ScreenUnlockReceiver --- .../main/java/org/tasks/TasksApplication.kt | 13 +++++++++++++ .../tasks/receivers/ScreenUnlockReceiver.kt | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 app/src/main/java/org/tasks/receivers/ScreenUnlockReceiver.kt diff --git a/app/src/main/java/org/tasks/TasksApplication.kt b/app/src/main/java/org/tasks/TasksApplication.kt index a23d2cf55..0ba4c37bf 100644 --- a/app/src/main/java/org/tasks/TasksApplication.kt +++ b/app/src/main/java/org/tasks/TasksApplication.kt @@ -6,6 +6,7 @@ import android.app.ApplicationExitInfo import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.content.IntentFilter import android.os.Build import android.util.Log import androidx.annotation.RequiresApi @@ -37,6 +38,7 @@ import org.tasks.location.GeofenceApi import org.tasks.opentasks.OpenTaskContentObserver import org.tasks.preferences.Preferences import org.tasks.receivers.RefreshReceiver +import org.tasks.receivers.ScreenUnlockReceiver import org.tasks.scheduling.NotificationSchedulerIntentService import org.tasks.sync.SyncAdapters import org.tasks.themes.ThemeBase @@ -140,6 +142,7 @@ class TasksApplication : Application(), Configuration.Provider { geofenceApi.get().registerAll() appWidgetManager.get().reconfigureWidgets() CaldavSynchronizer.registerFactories() + registerScreenUnlockReceiver() } override val workManagerConfiguration: Configuration @@ -164,6 +167,16 @@ class TasksApplication : Application(), Configuration.Provider { } } + private fun registerScreenUnlockReceiver() { + registerReceiver( + ScreenUnlockReceiver(appWidgetManager.get()), + IntentFilter().apply { + addAction(Intent.ACTION_USER_PRESENT) + addAction(Intent.ACTION_SCREEN_ON) + } + ) + } + companion object { @Suppress("KotlinConstantConditions") const val IS_GOOGLE_PLAY = BuildConfig.FLAVOR == "googleplay" diff --git a/app/src/main/java/org/tasks/receivers/ScreenUnlockReceiver.kt b/app/src/main/java/org/tasks/receivers/ScreenUnlockReceiver.kt new file mode 100644 index 000000000..ae46164eb --- /dev/null +++ b/app/src/main/java/org/tasks/receivers/ScreenUnlockReceiver.kt @@ -0,0 +1,19 @@ +package org.tasks.receivers + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import org.tasks.widget.AppWidgetManager +import timber.log.Timber + +class ScreenUnlockReceiver(private val appWidgetManager: AppWidgetManager) : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + when (intent.action) { + Intent.ACTION_USER_PRESENT, + Intent.ACTION_SCREEN_ON -> { + Timber.d("refreshing widgets: ${intent.action}") + appWidgetManager.updateWidgets() + } + } + } +}