diff --git a/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java b/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java index 3ea5eb3d0..f99c3bb69 100644 --- a/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java +++ b/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java @@ -154,6 +154,11 @@ protected Notification.Builder getNotificationBuilder(PendingIntent intent) { .setDefaults(Notification.DEFAULT_ALL) .setAutoCancel(true); + final String group = mNotificationProps.getGroup(); + if (group != null && !group.isEmpty()) { + notification.setGroup(group); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, diff --git a/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationProps.java b/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationProps.java index b155dfa03..8190c0ae5 100644 --- a/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationProps.java +++ b/android/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationProps.java @@ -10,10 +10,11 @@ public PushNotificationProps() { mBundle = new Bundle(); } - public PushNotificationProps(String title, String body) { + public PushNotificationProps(String title, String body, String group) { mBundle = new Bundle(); mBundle.putString("title", title); mBundle.putString("body", body); + mBundle.putString("group", group); } public PushNotificationProps(Bundle bundle) { @@ -28,6 +29,10 @@ public String getBody() { return mBundle.getString("body"); } + public String getGroup() { + return mBundle.getString("group"); + } + public Bundle asBundle() { return (Bundle) mBundle.clone(); } diff --git a/android/src/test/java/com/wix/reactnativenotifications/core/notification/PushNotificationTest.java b/android/src/test/java/com/wix/reactnativenotifications/core/notification/PushNotificationTest.java index 5da598626..20b937ceb 100644 --- a/android/src/test/java/com/wix/reactnativenotifications/core/notification/PushNotificationTest.java +++ b/android/src/test/java/com/wix/reactnativenotifications/core/notification/PushNotificationTest.java @@ -44,6 +44,7 @@ public class PushNotificationTest { private static final String DEFAULT_NOTIFICATION_TITLE = "Notification-title"; private static final String DEFAULT_NOTIFICATION_BODY = "Notification-body"; + private static final String DEFAULT_NOTIFICATION_GROUP = "Notification-group"; @Mock private ReactContext mReactContext; @Mock private Context mContext; @@ -62,6 +63,7 @@ public void setup() throws Exception { when(mDefaultBundle.getString(eq("title"))).thenReturn(DEFAULT_NOTIFICATION_TITLE); when(mDefaultBundle.getString(eq("body"))).thenReturn(DEFAULT_NOTIFICATION_BODY); + when(mDefaultBundle.getString(eq("group"))).thenReturn(DEFAULT_NOTIFICATION_GROUP); when(mDefaultBundle.clone()).thenReturn(mDefaultBundle); when(mAppLaunchHelper.getLaunchIntent(eq(mContext))).thenReturn(mLaunchIntent); @@ -316,5 +318,6 @@ protected void verifyNotification(Notification notification) { ShadowNotification shadowNotification = Shadows.shadowOf(notification); assertEquals(shadowNotification.getContentText(), DEFAULT_NOTIFICATION_BODY); assertEquals(shadowNotification.getContentTitle(), DEFAULT_NOTIFICATION_TITLE); + assertEquals(shadowNotification.getGroup(), DEFAULT_NOTIFICATION_GROUP); } }