From ba140e543e4fdcae2f2b630d2b66b563e9bb16d4 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 23 Dec 2021 16:42:29 +0100 Subject: [PATCH] Skip grouping DSNs --- .../java/eu/faircode/email/MessageHelper.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 3ad0b77444..f6430efb46 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1337,16 +1337,23 @@ public class MessageHelper { boolean subject_threading = prefs.getBoolean("subject_threading", false); if (subject_threading) { - String sender = getSortKey(getFrom()); - String subject = getSubject(); - long since = new Date().getTime() - MAX_SUBJECT_AGE * 3600 * 1000L; - if (!TextUtils.isEmpty(sender) && !TextUtils.isEmpty(subject)) { - List subjects = db.message().getMessagesBySubject(account, sender, subject, since); - for (EntityMessage message : subjects) - if (!thread.equals(message.thread)) { - Log.w("Updating subject thread from " + message.thread + " to " + thread); - db.message().updateMessageThread(message.account, message.thread, thread, since); - } + boolean dsn = false; + try { + dsn = imessage.isMimeType("multipart/report"); + } catch (Throwable ignored) { + } + if (!dsn) { + String sender = getSortKey(getFrom()); + String subject = getSubject(); + long since = new Date().getTime() - MAX_SUBJECT_AGE * 3600 * 1000L; + if (!TextUtils.isEmpty(sender) && !TextUtils.isEmpty(subject)) { + List subjects = db.message().getMessagesBySubject(account, sender, subject, since); + for (EntityMessage message : subjects) + if (!thread.equals(message.thread)) { + Log.w("Updating subject thread from " + message.thread + " to " + thread); + db.message().updateMessageThread(message.account, message.thread, thread, since); + } + } } }