diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index bf8ed663c0..76e7e440c0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -6527,75 +6527,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. return; } - SimpleTask move = new SimpleTask() { - @Override - protected Void onExecute(Context context, Bundle args) { - ArrayList result = args.getParcelableArrayList("result"); - - DB db = DB.getInstance(context); - try { - db.beginTransaction(); - - for (MessageTarget target : result) { - EntityMessage message = db.message().getMessage(target.id); - if (message == null || !message.ui_hide) - continue; - - Log.i("Move id=" + target.id + " target=" + target.targetFolder.name); - db.message().setMessageUiBusy(target.id, null); - db.message().setMessageLastAttempt(target.id, new Date().getTime()); - EntityOperation.queue(context, message, EntityOperation.MOVE, target.targetFolder.id); - } - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - - ServiceSynchronize.eval(context, "move"); - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Log.e(ex); - } - }; - - SimpleTask show = new SimpleTask() { - @Override - protected Void onExecute(Context context, Bundle args) { - ArrayList result = args.getParcelableArrayList("result"); - - DB db = DB.getInstance(context); - try { - db.beginTransaction(); - - for (MessageTarget target : result) { - Log.i("Move undo id=" + target.id); - db.message().setMessageUiBusy(target.id, null); - db.message().setMessageUiHide(target.id, false); - db.message().setMessageFound(target.id, target.found); - db.message().setMessageLastAttempt(target.id, new Date().getTime()); - } - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Log.e(ex); - } - }; - String title = getString(R.string.title_move_undo, getNames(result, true), result.size()); - ((ActivityView) activity).undo(title, args, move, show); + ((ActivityView) activity).undo(title, args, taskUndoMove, taskUndoShow); } @Override @@ -6605,6 +6538,73 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }.execute(this, args, "undo:hide"); } + private static final SimpleTask taskUndoMove = new SimpleTask() { + @Override + protected Void onExecute(Context context, Bundle args) { + ArrayList result = args.getParcelableArrayList("result"); + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + for (MessageTarget target : result) { + EntityMessage message = db.message().getMessage(target.id); + if (message == null || !message.ui_hide) + continue; + + Log.i("Move id=" + target.id + " target=" + target.targetFolder.name); + db.message().setMessageUiBusy(target.id, null); + db.message().setMessageLastAttempt(target.id, new Date().getTime()); + EntityOperation.queue(context, message, EntityOperation.MOVE, target.targetFolder.id); + } + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + ServiceSynchronize.eval(context, "move"); + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.e(ex); + } + }; + + private static final SimpleTask taskUndoShow = new SimpleTask() { + @Override + protected Void onExecute(Context context, Bundle args) { + ArrayList result = args.getParcelableArrayList("result"); + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + for (MessageTarget target : result) { + Log.i("Move undo id=" + target.id); + db.message().setMessageUiBusy(target.id, null); + db.message().setMessageUiHide(target.id, false); + db.message().setMessageFound(target.id, target.found); + db.message().setMessageLastAttempt(target.id, new Date().getTime()); + } + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.e(ex); + } + }; + private static String getNames(ArrayList result, boolean dest) { boolean across = false; for (MessageTarget target : result)