From e8277d7567a591e483cac4c93011f50f529cc1ba Mon Sep 17 00:00:00 2001 From: Elliot Mawby Date: Thu, 6 Jun 2024 14:16:37 -0700 Subject: [PATCH] Get status on init We don't cache enabled. We could do so if we want to fire the changed handler if the user changed settings between app sessions --- .../permissions/impl/NotificationPermissionController.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OneSignalSDK/onesignal/notifications/src/main/java/com/onesignal/notifications/internal/permissions/impl/NotificationPermissionController.kt b/OneSignalSDK/onesignal/notifications/src/main/java/com/onesignal/notifications/internal/permissions/impl/NotificationPermissionController.kt index 91924d2cc..ab7fdd04e 100644 --- a/OneSignalSDK/onesignal/notifications/src/main/java/com/onesignal/notifications/internal/permissions/impl/NotificationPermissionController.kt +++ b/OneSignalSDK/onesignal/notifications/src/main/java/com/onesignal/notifications/internal/permissions/impl/NotificationPermissionController.kt @@ -58,7 +58,7 @@ internal class NotificationPermissionController( INotificationPermissionController { private val waiter = WaiterWithValue() private val events = EventProducer() - private var _enabled = false // Should be a cached value + private var _enabled: Boolean private val coroutineScope = CoroutineScope(newSingleThreadContext(name = "NotificationPermissionController")) override val canRequestPermission: Boolean @@ -70,6 +70,7 @@ internal class NotificationPermissionController( )!! init { + _enabled = notificationsEnabled() _requestPermission.registerAsCallback(PERMISSION_TYPE, this) coroutineScope.launch {// Should this be Android version restricted? pollForPermission() @@ -79,7 +80,7 @@ internal class NotificationPermissionController( private suspend fun pollForPermission() { while (true) { val enabled = this.notificationsEnabled() - if (_enabled != enabled) { // The permission has changed without prompting through OneSignal + if (_enabled != enabled) { // If the permission has changed without prompting through OneSignal _enabled = enabled events.fire { it.onNotificationPermissionChanged(enabled) } }