From e846485d52a8d5f7518b33c20ccccddbc9399edf Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 29 Aug 2026 10:10:46 +0200 Subject: [PATCH] Delay notifications for summary generation --- app/src/main/java/eu/faircode/email/Core.java | 5 ++++- app/src/main/java/eu/faircode/email/EntityMessage.java | 1 + app/src/main/java/eu/faircode/email/EntityRule.java | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index cf4eeab6a5..0751a29cbb 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -5131,7 +5131,10 @@ class Core { } } } finally { - db.message().setMessageNotifying(message.id, 0); + if (message.notifying == EntityMessage.NOTIFYING_RULE_PENDING) + message.notifying = EntityMessage.NOTIFYING_IGNORE; + else + db.message().setMessageNotifying(message.id, 0); } reportNewMessage(context, account, folder, message); diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index 4ce1f34192..115bedaa6f 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -97,6 +97,7 @@ public class EntityMessage implements Serializable { static final String TABLE_NAME = "message"; static final int NOTIFYING_IGNORE = -2; + static final int NOTIFYING_RULE_PENDING = -3; static final Integer ENCRYPT_NONE = 0; static final Integer PGP_SIGNENCRYPT = 1; diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index ec0ed59056..c2dc13229e 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -1690,6 +1690,7 @@ public class EntityRule { return false; if (!this.async && this.id != null) { + message.notifying = EntityMessage.NOTIFYING_RULE_PENDING; EntityOperation.queue(context, message, EntityOperation.RULE, this.id, browsed); return true; }