diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index e6e1d309cb..8f2cd81e17 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -3038,12 +3038,18 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected Uri onExecute(Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + + File source = EntityMessage.getFile(context, id); + + File dir = Helper.ensureExists(new File(context.getFilesDir(), "shared")); + File target = new File(dir, id + ".html"); + + Helper.copy(source, target); + + return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, target); + } + + @Override + protected void onExecuted(Bundle args, Uri uri) { + Helper.share(context, uri, "text/html", null); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); + } + }.execute(context, owner, args, "message:external"); + + return true; } if ("cid".equals(uri.getScheme()) || "data".equals(uri.getScheme())) @@ -6070,8 +6112,6 @@ public class AdapterMessage extends RecyclerView.Adapter