diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 6e67a92b25..888797fe47 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -4555,12 +4555,12 @@ public class AdapterMessage extends RecyclerView.Adapter>() { + new SimpleTask>() { @Override - protected Map onExecute(Context context, Bundle args) throws Throwable { + protected Map onExecute(Context context, Bundle args) throws Throwable { long id = args.getLong("id"); - Map result = new HashMap<>(); + Map result = new HashMap<>(); DB db = DB.getInstance(context); EntityMessage message = db.message().getMessage(id); @@ -4589,11 +4589,13 @@ public class AdapterMessage extends RecyclerView.Adapter data) { + protected void onExecuted(Bundle args, Map data) { if (data == null) return; @@ -4602,20 +4604,40 @@ public class AdapterMessage extends RecyclerView.Adapter uris = new ArrayList<>(); + + List attachments = (List) data.get("attachments"); + if (attachments != null) + for (EntityAttachment attachment : attachments) { + File file = attachment.getFile(context); + Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file); + uris.add(uri); + } + + if (uris.size() > 0) { + if (uris.size() == 1) + intent.putExtra(Intent.EXTRA_STREAM, uris.get(0)); + else { + intent.setAction(Intent.ACTION_SEND_MULTIPLE); + intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); + } + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } } PackageManager pm = context.getPackageManager();