From 21dd0f7bda4242757cfcdc675255492a1b13b619 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 25 Nov 2018 17:38:31 +0100 Subject: [PATCH] Allow undoing move of selection --- .../eu/faircode/email/FragmentMessages.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 29a0c36461..78790a7c64 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -730,26 +730,29 @@ public class FragmentMessages extends FragmentEx { selectionTracker.clearSelection(); - new SimpleTask() { + new SimpleTask() { @Override - protected Void onLoad(Context context, Bundle args) { + protected MessageTarget onLoad(Context context, Bundle args) { long[] ids = args.getLongArray("ids"); long target = args.getLong("target"); + MessageTarget result = new MessageTarget(); + DB db = DB.getInstance(context); try { db.beginTransaction(); + result.target = db.folder().getFolder(target); + for (long id : ids) { EntityMessage message = db.message().getMessage(id); List messages = db.message().getMessageByThread( message.account, message.thread, message.ui_found); - for (EntityMessage threaded : messages) { + for (EntityMessage threaded : messages) if (threaded.folder.equals(message.folder)) { - EntityOperation.queue(db, threaded, EntityOperation.MOVE, target); + result.ids.add(threaded.id); db.message().setMessageUiHide(threaded.id, true); } - } } db.setTransactionSuccessful(); @@ -759,7 +762,12 @@ public class FragmentMessages extends FragmentEx { EntityOperation.process(context); - return null; + return result; + } + + @Override + protected void onLoaded(Bundle args, MessageTarget result) { + moveUndo(result); } @Override