diff --git a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java index d6a0253a2..770174297 100644 --- a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java +++ b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java @@ -172,6 +172,9 @@ public class NotificationTray private final long reminderTime; + private final String GROUP_KEY_HABITS = "group_key_habits"; + private static final int SUMMARY_ID = 0; + public ShowNotificationTask(Habit habit, NotificationData data) { this.habit = habit; @@ -221,17 +224,29 @@ public class NotificationTray .addAction(snoozeAction) .setSound(getRingtoneUri(context)) .extend(wearableExtender) + .setGroup(GROUP_KEY_HABITS) .setWhen(reminderTime) .setShowWhen(true) .setOngoing(preferences.shouldMakeNotificationsSticky()) .build(); + //you need to create a summary notification to group notifications together. + Notification summaryNotification = new Builder(context) + .setSmallIcon(R.drawable.ic_notification) + .setContentTitle(context.getString(R.string.summary_notification_title)) + .setWhen(reminderTime) + .setGroupSummary(true) + .setGroup(GROUP_KEY_HABITS) + .setShowWhen(true) + .build(); + NotificationManager notificationManager = (NotificationManager) context.getSystemService( Activity.NOTIFICATION_SERVICE); int notificationId = getNotificationId(habit); notificationManager.notify(notificationId, notification); + notificationManager.notify(SUMMARY_ID, summaryNotification); } private boolean shouldShowReminderToday() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 04b2c20bc..e985ba481 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -203,4 +203,5 @@ By color By score Download + Habit Reminders \ No newline at end of file