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 e878258c5..38375986c 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 @@ -77,7 +77,7 @@ internal class NotificationPermissionController( init { this.enabled = notificationsEnabled() _requestPermission.registerAsCallback(PERMISSION_TYPE, this) - pollingWaitInterval = _configModelStore.model.foregroundFetchNotificationPermissionInterval + pollingWaitInterval = _configModelStore.model.backgroundFetchNotificationPermissionInterval registerPollingLifecycleListener() coroutineScope.launch { pollForPermission() diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/permission/NotificationPermissionControllerTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/permission/NotificationPermissionControllerTests.kt index f5ff0260a..d5228c745 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/permission/NotificationPermissionControllerTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/permission/NotificationPermissionControllerTests.kt @@ -8,7 +8,6 @@ import com.onesignal.core.internal.permissions.IRequestPermissionService import com.onesignal.core.internal.preferences.IPreferencesService import com.onesignal.debug.LogLevel import com.onesignal.debug.internal.logging.Logging -import com.onesignal.mocks.AndroidMockHelper import com.onesignal.mocks.MockHelper import com.onesignal.notifications.internal.permissions.INotificationPermissionChangedHandler import com.onesignal.notifications.internal.permissions.impl.NotificationPermissionController @@ -39,9 +38,14 @@ class NotificationPermissionControllerTests : FunSpec({ val mockRequestPermissionService = mockk() every { mockRequestPermissionService.registerAsCallback(any(), any()) } just runs val mockPreferenceService = mockk() - + val focusHandlerList = mutableListOf() + val mockAppService = mockk() + every { mockAppService.addApplicationLifecycleHandler(any()) } answers { + focusHandlerList.add(firstArg()) + } + every { mockAppService.appContext } returns ApplicationProvider.getApplicationContext() var handlerFired = false - val notificationPermissionController = NotificationPermissionController(AndroidMockHelper.applicationService(), mockRequestPermissionService, AndroidMockHelper.applicationService(), mockPreferenceService, MockHelper.configModelStore()) + val notificationPermissionController = NotificationPermissionController(mockAppService, mockRequestPermissionService, mockAppService, mockPreferenceService, MockHelper.configModelStore()) notificationPermissionController.subscribe( object : INotificationPermissionChangedHandler { @@ -50,6 +54,11 @@ class NotificationPermissionControllerTests : FunSpec({ } }, ) + // call onFocus to set the proper polling interval. + // This happens when registering the lifecycle handler + for (focusHandler in focusHandlerList) { + focusHandler.onFocus() + } // When // permission changes @@ -83,6 +92,11 @@ class NotificationPermissionControllerTests : FunSpec({ } }, ) + // call onFocus to set the proper polling interval. + // This happens when registering the lifecycle handler + for (focusHandler in handlerList) { + focusHandler.onFocus() + } // When // the app has loses focus @@ -121,6 +135,11 @@ class NotificationPermissionControllerTests : FunSpec({ } }, ) + // call onFocus to set the proper polling interval. + // This happens when registering the lifecycle handler + for (focusHandler in handlerList) { + focusHandler.onFocus() + } // When // the app loses focus