diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 21a49a3ed4..974f0352d9 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1073,6 +1073,9 @@ public class AdapterMessage extends RecyclerView.Adapter messages = db.message().getMessageByThread( - message.account, message.thread, threading && thread ? null : id, message.folder); - for (EntityMessage threaded : messages) - EntityOperation.queue(db, threaded, EntityOperation.FLAG, flagged); + try { + db.beginTransaction(); + + EntityMessage message = db.message().getMessage(id); + if (message == null) + return null; + + List messages = db.message().getMessageByThread( + message.account, message.thread, threading && thread ? null : id, message.folder); + for (EntityMessage threaded : messages) + EntityOperation.queue(db, threaded, EntityOperation.FLAG, flagged); + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } return null; } @@ -1291,9 +1308,21 @@ public class AdapterMessage extends RecyclerView.Adapter>() { @Override protected List onExecute(Context context, Bundle args) { + EntityMessage message; + List folders = new ArrayList<>(); + DB db = DB.getInstance(context); + try { + db.beginTransaction(); - EntityMessage message = db.message().getMessage(args.getLong("id")); + message = db.message().getMessage(args.getLong("id")); + if (message == null) + return folders; + + folders = db.folder().getFolders(message.account); + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } - List folders = db.folder().getFolders(message.account); List targets = new ArrayList<>(); for (EntityFolder folder : folders) if (!folder.hide &&