From 2137c272dd7f94938d254f11b8973d7a4a8cb14d Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 25 May 2019 17:37:01 +0200 Subject: [PATCH] Allow moving spam directly to inbox --- .../eu/faircode/email/AdapterMessage.java | 134 ++++++++++-------- 1 file changed, 72 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 54dfa5a984..2fac8d6be7 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -988,6 +988,7 @@ public class AdapterMessage extends RecyclerView.Adapter() { - @Override - protected Void onExecute(Context context, Bundle args) { - long id = args.getLong("id"); - - EntityMessage message; - - DB db = DB.getInstance(context); - try { - db.beginTransaction(); - - message = db.message().getMessage(id); - if (message == null) - return null; - - db.folder().setFolderError(message.folder, null); - - File source = message.getFile(context); - - // Insert into drafts - EntityFolder drafts = db.folder().getFolderByType(message.account, EntityFolder.DRAFTS); - message.id = null; - message.folder = drafts.id; - message.ui_snoozed = null; - message.id = db.message().insertMessage(message); - - File target = message.getFile(context); - source.renameTo(target); - - List attachments = db.attachment().getAttachments(id); - for (EntityAttachment attachment : attachments) - db.attachment().setMessage(attachment.id, message.id); - - EntityOperation.queue(context, message, EntityOperation.ADD); - - // Delete from outbox - db.message().deleteMessage(id); // will delete operation too - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - - NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - nm.cancel("send", message.identity.intValue()); - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(context, owner, ex); - } - }.execute(context, owner, args, "message:move:draft"); - } - private void onActionMove(final ActionData data, final boolean copy) { final View dview = LayoutInflater.from(context).inflate(R.layout.dialog_folder_select, null); final RecyclerView rvFolder = dview.findViewById(R.id.rvFolder); @@ -3231,10 +3177,74 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) { + long id = args.getLong("id"); + + EntityMessage message; + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + message = db.message().getMessage(id); + if (message == null) + return null; + + db.folder().setFolderError(message.folder, null); + + File source = message.getFile(context); + + // Insert into drafts + EntityFolder drafts = db.folder().getFolderByType(message.account, EntityFolder.DRAFTS); + message.id = null; + message.folder = drafts.id; + message.ui_snoozed = null; + message.id = db.message().insertMessage(message); + + File target = message.getFile(context); + source.renameTo(target); + + List attachments = db.attachment().getAttachments(id); + for (EntityAttachment attachment : attachments) + db.attachment().setMessage(attachment.id, message.id); + + EntityOperation.queue(context, message, EntityOperation.ADD); + + // Delete from outbox + db.message().deleteMessage(id); // will delete operation too + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + nm.cancel("send", message.identity.intValue()); + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(context, owner, ex); + } + }.execute(context, owner, args, "message:move:draft"); + } + private void onActionArchive(ActionData data) { properties.move(data.message.id, EntityFolder.ARCHIVE, true); } + private void onActionMoveJunk(ActionData data) { + properties.move(data.message.id, EntityFolder.INBOX, true); + } + private void onActionReplyMenu(final ActionData data) { int recipients = 0; if (data.message.from != null)