From d9488e12e57ebab8350081e2cec06cd2c46e5303 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 9 Sep 2019 14:06:43 +0200 Subject: [PATCH] Added send as attachment --- FAQ.md | 4 +- .../eu/faircode/email/AdapterMessage.java | 95 +++++++++++-------- app/src/main/res/menu/menu_message.xml | 12 ++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 71 insertions(+), 41 deletions(-) diff --git a/FAQ.md b/FAQ.md index 55c46478d7..5d65b9b814 100644 --- a/FAQ.md +++ b/FAQ.md @@ -57,9 +57,9 @@ For authorizing: * ~~Pinch zoom text size~~ * ~~Display GIFs~~ * ~~Themes~~ (a grey light and dark theme were added because this is what most people seems to want) -* Send as attachment +* ~~Any day time condition~~ (any day doesn't really fit into the from/to date/time condition) +* ~~Send as attachment~~ * Search for settings -* Select any day for time conditions * Widget for selected account Anything on this list is in random order and *might* be added in the near future. diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 6769ac81c0..e87095186f 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -94,6 +94,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.PopupMenu; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.Group; +import androidx.core.content.FileProvider; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; @@ -2393,10 +2394,12 @@ public class AdapterMessage extends RecyclerView.Adapter() { - @Override - protected Void onExecute(Context context, Bundle args) { - Long id = args.getLong("id"); + new SimpleTask() { + @Override + protected Void onExecute(Context context, Bundle args) { + Long id = args.getLong("id"); - DB db = DB.getInstance(context); - try { - db.beginTransaction(); + DB db = DB.getInstance(context); + try { + db.beginTransaction(); - EntityMessage message = db.message().getMessage(id); - if (message == null) - return null; + EntityMessage message = db.message().getMessage(id); + if (message == null) + return null; - EntityOperation.queue(context, message, EntityOperation.RAW); + EntityOperation.queue(context, message, EntityOperation.RAW); - db.message().setMessageRaw(message.id, false); + db.message().setMessageRaw(message.id, false); - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - return null; + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); } + return null; + } - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(parentFragment.getFragmentManager(), ex); - } - }.execute(context, owner, args, "message:raw"); - } else { - LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); - lbm.sendBroadcast( - new Intent(FragmentMessages.ACTION_STORE_RAW) - .putExtra("id", message.id)); - } + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(parentFragment.getFragmentManager(), ex); + } + }.execute(context, owner, args, "message:raw"); + } + + private void onMenuRawSave(TupleMessageEx message) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(FragmentMessages.ACTION_STORE_RAW) + .putExtra("id", message.id)); + } + + private void onMenuRawSend(TupleMessageEx message) { + File file = message.getRawFile(context); + Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file); + + Intent send = new Intent(Intent.ACTION_SEND); + send.putExtra(Intent.EXTRA_STREAM, uri); + send.setType("message/rfc822"); + context.startActivity(send); } ItemDetailsLookup.ItemDetails getItemDetails(@NonNull MotionEvent motionEvent) { diff --git a/app/src/main/res/menu/menu_message.xml b/app/src/main/res/menu/menu_message.xml index 69671587b9..400c460e27 100644 --- a/app/src/main/res/menu/menu_message.xml +++ b/app/src/main/res/menu/menu_message.xml @@ -54,6 +54,16 @@ android:title="@string/title_show_headers" /> + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7ce5e85e9e..43a8848ffe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -478,6 +478,7 @@ Show headers Download raw message Save raw message + Send as attachment Manage keywords Add keyword Show inline attachments