From 82296dd31f75fd378c24fa46f7137b3cc90373f5 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 23 May 2020 17:30:23 +0200 Subject: [PATCH] Use external image viewer --- .../eu/faircode/email/AdapterMessage.java | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 372a2bab8c..2a3f39ac63 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -3851,17 +3851,47 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected EntityAttachment onExecute(Context context, Bundle args) { + long id = args.getLong("id"); + String source = args.getString("source"); + + DB db = DB.getInstance(context); + String cid = "<" + source.substring(4) + ">"; + return db.attachment().getAttachment(id, cid); + } + + @Override + protected void onExecuted(Bundle args, EntityAttachment attachment) { + if (attachment != null) + Helper.share(context, attachment.getFile(context), attachment.getMimeType(), attachment.name); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); + } + }.execute(context, owner, args, "view:cid"); + } else if ("http".equals(scheme) || "https".equals(scheme)) + Helper.view(context, uri, false); + else { + FragmentDialogImage fragment = new FragmentDialogImage(); + fragment.setArguments(args); + fragment.show(parentFragment.getParentFragmentManager(), "view:image"); + } } private void onMenuUnseen(final TupleMessageEx message) {