From ab8bc9f986ec04fc83cf258f4c64b2c5ba5f10cb Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 14 Feb 2021 21:14:59 +0100 Subject: [PATCH] Notifications FIFO --- app/src/main/java/eu/faircode/email/Core.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index f2cf4da3a6..4e3b23253b 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -135,7 +135,8 @@ import static androidx.core.app.NotificationCompat.DEFAULT_SOUND; import static javax.mail.Folder.READ_WRITE; class Core { - private static final int MAX_NOTIFICATION_COUNT = 25; // per group + private static final int MAX_NOTIFICATION_DISPLAY = 25; // per group + private static final int MAX_NOTIFICATION_COUNT = 100; // per group private static final int SYNC_CHUNCK_SIZE = 200; private static final int SYNC_BATCH_SIZE = 20; private static final int DOWNLOAD_BATCH_SIZE = 20; @@ -3728,7 +3729,8 @@ class Core { List add = new ArrayList<>(); List update = new ArrayList<>(); List remove = new ArrayList<>(groupNotifying.get(group)); - for (TupleMessageEx message : groupMessages.get(group)) { + for (int m = 0; m < groupMessages.get(group).size() && m < MAX_NOTIFICATION_DISPLAY; m++) { + TupleMessageEx message = groupMessages.get(group).get(m); long id = (message.content ? message.id : -message.id); if (remove.contains(id)) { remove.remove(id); @@ -3864,7 +3866,8 @@ class Core { // Get contact info Map messageFrom = new HashMap<>(); Map messageInfo = new HashMap<>(); - for (TupleMessageEx message : messages) { + for (int m = 0; m < messages.size() && m < MAX_NOTIFICATION_DISPLAY; m++) { + TupleMessageEx message = messages.get(m); ContactInfo[] info = ContactInfo.get(context, message.account, message.folderType, message.from); Address[] modified = (message.from == null @@ -3998,7 +4001,8 @@ class Core { return notifications; // Message notifications - for (TupleMessageEx message : messages) { + for (int m = 0; m < messages.size() && m < MAX_NOTIFICATION_DISPLAY; m++) { + TupleMessageEx message = messages.get(m); ContactInfo[] info = messageInfo.get(message.id); // Build arguments