From cf2fa0d907f5a3038833215b7c0c649c9aab0510 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 29 Apr 2020 20:00:19 +0200 Subject: [PATCH] Added transaction to fix threads --- .../java/eu/faircode/email/MessageHelper.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 161059fd6b..0a73365c28 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -875,15 +875,24 @@ public class MessageHelper { String thread = null; DB db = DB.getInstance(context); - for (String ref : refs) { - List messages = db.message().getMessagesByMsgId(account, ref); - for (EntityMessage message : messages) { - if (thread == null) - thread = message.thread; - if (thread != null && !thread.equals(message.thread)) - db.message().setMessageThread(message.id, thread); + try { + db.beginTransaction(); + + for (String ref : refs) { + List messages = db.message().getMessagesByMsgId(account, ref); + for (EntityMessage message : messages) { + if (thread == null) + thread = message.thread; + if (thread != null && !thread.equals(message.thread)) + db.message().setMessageThread(message.id, thread); + } } + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); } + if (thread != null) return thread;