From c0d40ec9800fd4d073a9e944f858a0698452613c Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 15 Feb 2021 11:56:37 +0100 Subject: [PATCH] Small improvements --- .../eu/faircode/email/AdapterMessage.java | 1 + app/src/main/java/eu/faircode/email/Core.java | 22 ++++++++++++------- .../java/eu/faircode/email/EntityMessage.java | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 28c45585f3..0c1d92b354 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -5572,6 +5572,7 @@ public class AdapterMessage extends RecyclerView.Adapter()); + data.groupNotifying.put(group, new ArrayList<>()); if (!groupMessages.containsKey(group)) - groupMessages.put(group, new ArrayList()); + groupMessages.put(group, new ArrayList<>()); if (message.notifying != 0) { long id = message.id * message.notifying; @@ -3716,11 +3716,11 @@ class Core { } } - if (!message.ui_seen && !message.ui_ignored && !message.ui_hide) { - // This assumes the messages are properly ordered + if (!(message.ui_seen || message.ui_ignored || message.ui_hide)) { Integer current = newMessages.get(group); newMessages.put(group, current == null ? 1 : current + 1); + // This assumes the messages are properly ordered if (groupMessages.get(group).size() < MAX_NOTIFICATION_COUNT) groupMessages.get(group).add(message); else @@ -3736,7 +3736,9 @@ class Core { for (int m = 0; m < groupMessages.get(group).size(); m++) { TupleMessageEx message = groupMessages.get(group).get(m); if (m >= MAX_NOTIFICATION_DISPLAY) { - db.message().setMessageUiSilent(message.id, true); + // This is to prevent notification sounds when shifting messages up + if (!message.ui_silent) + db.message().setMessageUiSilent(message.id, true); continue; } @@ -3779,8 +3781,12 @@ class Core { notify_summary, current - prev, redacted); - Log.i("Notify group=" + group + " count=" + notifications.size() + - " added=" + add.size() + " removed=" + remove.size()); + Log.i("Notify group=" + group + + " new=" + prev + "/" + current + + " count=" + notifications.size() + + " add=" + add.size() + + " update=" + update.size() + + " remove=" + remove.size()); if (notifications.size() == 0) { String tag = "unseen." + group + "." + 0; @@ -3805,7 +3811,7 @@ class Core { for (NotificationCompat.Builder builder : notifications) { long id = builder.getExtras().getLong("id", 0); - if ((id == 0 && prev != current) || add.contains(id)) { + if ((id == 0 && !prev.equals(current)) || add.contains(id)) { // https://developer.android.com/training/wearables/notifications/creating if (id == 0) { if (!notify_summary) diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index b4094e7820..e08ef660cc 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -546,6 +546,7 @@ public class EntityMessage implements Serializable { this.ui_hide.equals(other.ui_hide) && this.ui_found.equals(other.ui_found) && this.ui_ignored.equals(other.ui_ignored) && + this.ui_silent.equals(other.ui_silent) && this.ui_browsed.equals(other.ui_browsed) && Objects.equals(this.ui_busy, other.ui_busy) && Objects.equals(this.ui_snoozed, other.ui_snoozed) &&