diff --git a/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java b/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java index 4ac880787..960b1c7bc 100644 --- a/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java +++ b/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java @@ -111,6 +111,11 @@ public void isRegisteredForRemoteNotifications(Promise promise) { promise.resolve(new Boolean(hasPermission)); } + @ReactMethod void removeAllDeliveredNotifications() { + IPushNotificationsDrawer notificationsDrawer = PushNotificationsDrawer.get(getReactApplicationContext().getApplicationContext()); + notificationsDrawer.onAllNotificationsClearRequest(); + } + protected void startFcmIntentService(String extraFlag) { final Context appContext = getReactApplicationContext().getApplicationContext(); final Intent tokenFetchIntent = new Intent(appContext, FcmInstanceIdRefreshHandlerService.class); diff --git a/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java b/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java index 3be3dc1e5..5efa21682 100644 --- a/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java +++ b/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java @@ -9,4 +9,5 @@ public interface IPushNotificationsDrawer { void onNotificationOpened(); void onNotificationClearRequest(int id); + void onAllNotificationsClearRequest(); } diff --git a/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java b/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java index 7b320e16d..89da9ec76 100644 --- a/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java +++ b/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java @@ -60,6 +60,12 @@ public void onNotificationClearRequest(int id) { notificationManager.cancel(id); } + @Override + public void onAllNotificationsClearRequest() { + final NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.cancelAll(); + } + protected void clearAll() { final NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancelAll(); diff --git a/lib/src/index.android.js b/lib/src/index.android.js index 51376bf83..6abdcda2d 100644 --- a/lib/src/index.android.js +++ b/lib/src/index.android.js @@ -70,6 +70,10 @@ export class NotificationsAndroid { static cancelLocalNotification(id) { RNNotifications.cancelLocalNotification(id); } + + static removeAllDeliveredNotifications() { + RNNotifications.removeAllDeliveredNotifications(); + } } export class PendingNotifications {