From 7784008148098adb53cfa8cfb030829a9d06af79 Mon Sep 17 00:00:00 2001 From: Yedidya Kennard Date: Tue, 22 Aug 2017 12:59:35 +0300 Subject: [PATCH] Added support for checking permissions on android --- .../RNNotificationsModule.java | 7 +++++++ example/index.android.js | 12 ++++++++++++ index.android.js | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/android/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java b/android/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java index 1f5535e..33a13bf 100644 --- a/android/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java +++ b/android/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java @@ -5,6 +5,7 @@ import android.app.Application; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.support.v4.app.NotificationManagerCompat; import android.util.Log; import com.facebook.react.bridge.Arguments; @@ -89,6 +90,12 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements notificationsDrawer.onNotificationClearRequest(notificationId); } + @ReactMethod + public void isRegisteredForRemoteNotifications(Promise promise) { + boolean hasPermission = NotificationManagerCompat.from(getReactApplicationContext()).areNotificationsEnabled(); + promise.resolve(new Boolean(hasPermission)); + } + @Override public void onAppVisible() { final IPushNotificationsDrawer notificationsDrawer = PushNotificationsDrawer.get(getReactApplicationContext().getApplicationContext()); diff --git a/example/index.android.js b/example/index.android.js index 5681d18..23d9def 100644 --- a/example/index.android.js +++ b/example/index.android.js @@ -126,10 +126,22 @@ class MainComponent extends Component { this.onCancelNotification()}> Undo last + this.onCheckPermissions()}> + Check permissions + ) } + async onCheckPermissions() { + const hasPermissions = await NotificationsAndroid.isRegisteredForRemoteNotifications(); + if (hasPermissions) { + alert('Yay! You have permissions'); + } else { + alert('Boo! You don\'t have permissions'); + } + } + onPushRegistered() { } diff --git a/index.android.js b/index.android.js index 03fbe0d..324d23a 100644 --- a/index.android.js +++ b/index.android.js @@ -41,6 +41,10 @@ export class NotificationsAndroid { } } + static async isRegisteredForRemoteNotifications() { + return await RNNotifications.isRegisteredForRemoteNotifications(); + } + static refreshToken() { RNNotifications.refreshToken(); } -- 2.26.2