diff --git a/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java b/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java --- a/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java +++ b/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java @@ -44,6 +44,7 @@ private static final String ENCRYPTED_PAYLOAD_KEY = "encryptedPayload"; private static final String ENCRYPTION_FAILED_KEY = "encryptionFailed"; private static final String GROUP_NOTIF_IDS_KEY = "groupNotifIDs"; + private static final String COLLAPSE_ID_KEY = "collapseKey"; private static final String CHANNEL_ID = "default"; private static final long[] VIBRATION_SPEC = {500, 500}; private Bitmap displayableNotificationLargeIcon; @@ -263,6 +264,13 @@ return; } String id = message.getData().get(NOTIF_ID_KEY); + String collapseKey = message.getData().get(COLLAPSE_ID_KEY); + String notificationID = id; + + if (collapseKey != null) { + notificationID = collapseKey; + } + String title = message.getData().get(TITLE_KEY); String prefix = message.getData().get(PREFIX_KEY); String body = message.getData().get(BODY_KEY); @@ -297,10 +305,13 @@ if (!this.notificationGroupingSupported() || threadID == null) { notificationManager.notify( - id, id.hashCode(), notificationBuilder.build()); + notificationID, + notificationID.hashCode(), + notificationBuilder.build()); return; } - this.addToThreadGroupAndDisplay(id, notificationBuilder, threadID); + this.addToThreadGroupAndDisplay( + notificationID, notificationBuilder, threadID); } private PendingIntent