diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/AlwaysOnNotificationServiceManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/AlwaysOnNotificationServiceManager.kt index bfbf4139b..37fc34447 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/AlwaysOnNotificationServiceManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/AlwaysOnNotificationServiceManager.kt @@ -50,19 +50,23 @@ class AlwaysOnNotificationServiceManager( } private var watchJob: Job? = null + private var wasEnabled = false /** * Starts watching the given account's always-on setting. * When the setting changes, all layers are started or stopped accordingly. + * On initial load with false, nothing happens (no-op for users who never enabled it). */ fun watchAccount(account: Account) { watchJob?.cancel() + wasEnabled = false watchJob = scope.launch { account.settings.alwaysOnNotificationService.collectLatest { enabled -> if (enabled) { + wasEnabled = true enableAllLayers() - } else { + } else if (wasEnabled) { disableAllLayers() } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt index 28c964068..a9f386356 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt @@ -95,11 +95,7 @@ class NotificationRelayService : Service() { } fun stop(context: Context) { - val intent = - Intent(context, NotificationRelayService::class.java).apply { - action = ACTION_STOP - } - context.startService(intent) + context.stopService(Intent(context, NotificationRelayService::class.java)) } fun isEnabled(context: Context): Boolean =