diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java index 55658b1c..bdd94c66 100644 --- a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java +++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java @@ -431,9 +431,18 @@ public void onNotificationPermissionChange(boolean permission) { public void requestNotificationPermission(final boolean fallbackToSettings, Promise promise) { OneSignal.getNotifications().requestPermission(fallbackToSettings, Continue.with(result -> { if (result.isSuccess()) { - promise.resolve(result.getData()); + if (result.getData() != null && result.getData()) { + // `requestPermission` completed successfully and the user has accepted permission. + promise.resolve(true); + } + else { + // `requestPermission` completed successfully but the user has rejected permission. + promise.resolve(false); + } + } else { - promise.reject(result.getThrowable().getMessage()); + // `requestPermission` completed unsuccessfully. + promise.reject(result.getThrowable() != null ? result.getThrowable().getMessage() : "Permission request failed"); } })); }