diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java index 11993212..bc38a455 100644 --- a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java +++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java @@ -427,6 +427,13 @@ public void onNotificationPermissionChange(boolean permission) { @ReactMethod public void requestNotificationPermission(final boolean fallbackToSettings, Promise promise) { + // if permission already exists, no suspend is called so the Continue.with never runs below + boolean enabled = OneSignal.getNotifications().getPermission(); + if (enabled) { + promise.resolve(true); + return; + } + OneSignal.getNotifications().requestPermission(fallbackToSettings, Continue.with(result -> { if (result.isSuccess()) { promise.resolve(result.getData());