From b91f357dc0f4f15d54f2445d0f9dd94c86084e89 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 28 Jan 2020 11:12:56 +0100 Subject: [PATCH] Whitelist group summary notifications for "mikado.bizcalpro" Causes multiple notification to be sent, but this seems to be a bug from that app --- .../gadgetbridge/externalevents/NotificationListener.java | 7 ++++++- .../gadgetbridge/model/AppNotificationType.java | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java index 5a87ab344..f01e51d52 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java @@ -55,6 +55,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -108,6 +109,10 @@ public class NotificationListener extends NotificationListenerService { private HashMap notificationBurstPrevention = new HashMap<>(); private HashMap notificationOldRepeatPrevention = new HashMap<>(); + private static final List groupSummaryWhitelist = Arrays.asList( + "mikado.bizcalpro" + ); + public static ArrayList notificationStack = new ArrayList<>(); private long activeCallPostTime; @@ -342,7 +347,7 @@ public class NotificationListener extends NotificationListenerService { List actions = wearableExtender.getActions(); - if (actions.size() == 0 && NotificationCompat.isGroupSummary(notification)) { //this could cause #395 to come back + if (actions.size() == 0 && NotificationCompat.isGroupSummary(notification) && !groupSummaryWhitelist.contains(source)) { //this could cause #395 to come back LOG.info("Not forwarding notification, FLAG_GROUP_SUMMARY is set and no wearable action present. Notification flags: " + notification.flags); return; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java index 64f7b60dc..339508172 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java @@ -51,6 +51,7 @@ public class AppNotificationType extends HashMap { // Generic Calendar put("com.android.calendar", NotificationType.GENERIC_CALENDAR); + put("mikado.bizcalpro", NotificationType.BUSINESS_CALENDAR); // Google put("com.google.android.gm", NotificationType.GMAIL);