diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index 15abc403f..f41c18bca 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -44,8 +44,15 @@ class AndroidNotificationTray private val ringtoneManager: RingtoneManager ) : NotificationTray.SystemTray { + private var active = HashSet() + override fun removeNotification(id: Int) { - NotificationManagerCompat.from(context).cancel(id) + val manager = NotificationManagerCompat.from(context) + manager.cancel(id) + active.remove(id) + + // Clear the group summary notification + if(active.isEmpty()) manager.cancelAll() } override fun showNotification(habit: Habit, @@ -58,6 +65,7 @@ class AndroidNotificationTray notificationManager.notify(Int.MAX_VALUE, summary) val notification = buildNotification(habit, reminderTime, timestamp) notificationManager.notify(notificationId, notification) + active.add(notificationId) } @NonNull @@ -79,8 +87,7 @@ class AndroidNotificationTray val removeRepetitionAction = Action( R.drawable.ic_action_cancel, context.getString(R.string.no), - pendingIntents.removeRepetition(habit) - ) + pendingIntents.removeRepetition(habit)) val wearableBg = decodeResource(context.resources, R.drawable.stripe)