diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/config/ConfigModel.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/config/ConfigModel.kt index 684bfb690..74d31c466 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/config/ConfigModel.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/config/ConfigModel.kt @@ -209,9 +209,10 @@ class ConfigModel : Model() { /** * The number of milliseconds between fetching the current notification permission value when the app is out of focus + * We want this value to be very large to effectively stop polling in the background */ var backgroundFetchNotificationPermissionInterval: Long - get() = getLongProperty(::backgroundFetchNotificationPermissionInterval.name) { 1_800_000 } + get() = getLongProperty(::backgroundFetchNotificationPermissionInterval.name) { 86_400_000 } set(value) { setLongProperty(::backgroundFetchNotificationPermissionInterval.name, value) } 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 aaff0d53d..e878258c5 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 @@ -31,6 +31,7 @@ import android.os.Build import androidx.annotation.ChecksSdkIntAtLeast import com.onesignal.common.AndroidUtils import com.onesignal.common.events.EventProducer +import com.onesignal.common.threading.Waiter import com.onesignal.common.threading.WaiterWithValue import com.onesignal.core.internal.application.ApplicationLifecycleHandlerBase import com.onesignal.core.internal.application.IApplicationService @@ -59,7 +60,7 @@ internal class NotificationPermissionController( ) : IRequestPermissionService.PermissionCallback, INotificationPermissionController { private val waiter = WaiterWithValue() - private val pollingWaiter = WaiterWithValue() + private val pollingWaiter = Waiter() private var pollingWaitInterval: Long private val events = EventProducer() private var enabled: Boolean @@ -89,11 +90,12 @@ internal class NotificationPermissionController( override fun onFocus() { super.onFocus() pollingWaitInterval = _configModelStore.model.foregroundFetchNotificationPermissionInterval - pollingWaiter.wake(true) + pollingWaiter.wake() } override fun onUnfocused() { super.onUnfocused() + // Changing the polling interval to 1 day to effectively pause polling pollingWaitInterval = _configModelStore.model.backgroundFetchNotificationPermissionInterval } },