From 3da36bcbb6c66966f0409286ce467e1b278e6035 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 22 Nov 2018 18:05:44 +0100 Subject: [PATCH] Long press to mark thread (un)seen --- .../java/eu/faircode/email/AdapterFolder.java | 14 +-- .../eu/faircode/email/AdapterMessage.java | 89 ++++++++++++++++++- 2 files changed, 94 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 78fedf2bb3..f8673b889d 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -190,25 +190,27 @@ public class AdapterFolder extends RecyclerView.Adapter() { + @Override + protected Void onLoad(Context context, Bundle args) throws Throwable { + long account = args.getLong("account"); + String thread = args.getString("thread"); + boolean seen = args.getBoolean("seen"); + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + List messages = db.message().getMessageByThread(account, thread); + for (EntityMessage message : messages) { + db.message().setMessageUiSeen(message.id, seen); + db.message().setMessageUiIgnored(message.id, true); + EntityOperation.queue(db, message, EntityOperation.SEEN, seen); + } + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + EntityOperation.process(context); + + return null; + } + }.load(context, owner, args); + } + }); + + popupMenu.show(); + + return false; + } + private void onAddContact(TupleMessageEx message) { for (Address address : message.from) { InternetAddress ia = (InternetAddress) address; @@ -1075,6 +1157,7 @@ public class AdapterMessage extends PagedListAdapter