diff --git a/OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java index 858361f942..6a26aa039b 100644 --- a/OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java +++ b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java @@ -894,6 +894,14 @@ public static void setRequiresUserPrivacyConsent(boolean required) { requiresUserPrivacyConsent = required; } + + /** + * Indicates if the SDK is still waiting for the user to provide consent + */ + public static boolean requiresUserPrivacyConsent() { + return requiresUserPrivacyConsent && !userProvidedPrivacyConsent(); + } + static boolean shouldLogUserPrivacyConsentErrorMessageForMethodName(String methodName) { if (requiresUserPrivacyConsent && !userProvidedPrivacyConsent()) { if (methodName != null) diff --git a/OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java b/OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java index 0a54ad27b3..ef4baba111 100644 --- a/OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java +++ b/OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java @@ -2237,6 +2237,19 @@ public void onFailure(JSONObject response) { postNotificationSuccess = postNotificationFailure = null; } + @Test + public void shouldReturnCorrectConsentRequiredStatus() throws Exception { + OneSignal.setRequiresUserPrivacyConsent(true); + + OneSignalInit(); + + assertTrue(OneSignal.requiresUserPrivacyConsent()); + + OneSignal.provideUserConsent(true); + + assertFalse(OneSignal.requiresUserPrivacyConsent()); + } + /* // Can't get test to work from a app flow due to the main thread being locked one way or another in a robolectric env. // Running ActivityLifecycleListener.focusHandlerThread...advanceToNextPostedRunnable waits on the main thread.