From 4a7974e7e247e5606dc955bb754b92b0999cb640 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 8 Jan 2019 10:02:59 +0000 Subject: [PATCH] Allow moving snoozed messages from outbox to draft --- .../eu/faircode/email/AdapterMessage.java | 47 +++++++++++++++++-- .../java/eu/faircode/email/DaoAttachment.java | 5 ++ 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index bf49357ca2..9baeecb463 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -71,6 +71,7 @@ import com.google.android.material.snackbar.Snackbar; import org.xml.sax.XMLReader; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.Collator; @@ -699,12 +700,18 @@ public class AdapterMessage extends RecyclerView.Adapter onExecute(Context context, Bundle args) { EntityMessage message; - List folders = new ArrayList<>(); + List folders = null; DB db = DB.getInstance(context); try { @@ -1777,15 +1784,42 @@ public class AdapterMessage extends RecyclerView.Adapter attachments = db.attachment().getAttachments(id); + for (EntityAttachment attachment : attachments) + db.attachment().setMessage(attachment.id, message.id); + + EntityOperation.queue(context, db, message, EntityOperation.ADD); + + // Delete from outbox + db.message().deleteMessage(id); + } else + folders = db.folder().getFolders(message.account); db.setTransactionSuccessful(); } finally { db.endTransaction(); } + if (folders == null) + return null; + List targets = new ArrayList<>(); for (EntityFolder folder : folders) if (!folder.hide && @@ -1802,6 +1836,9 @@ public class AdapterMessage extends RecyclerView.Adapter folders) { + if (folders == null) + return; + View anchor = bnvActions.findViewById(R.id.action_move); PopupMenu popupMenu = new PopupMenu(context, anchor); diff --git a/app/src/main/java/eu/faircode/email/DaoAttachment.java b/app/src/main/java/eu/faircode/email/DaoAttachment.java index 9cbbcb116a..6c07f1bbb0 100644 --- a/app/src/main/java/eu/faircode/email/DaoAttachment.java +++ b/app/src/main/java/eu/faircode/email/DaoAttachment.java @@ -58,6 +58,11 @@ public interface DaoAttachment { " AND cid = :cid") EntityAttachment getAttachment(long message, String cid); + @Query("UPDATE attachment" + + " SET message = :message" + + " WHERE id = :id") + void setMessage(long id, long message); + @Query("UPDATE attachment" + " SET progress = :progress, available = 0" + " WHERE id = :id")