diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 0f27242efb..d659d10e6e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1395,15 +1395,20 @@ public class FragmentCompose extends FragmentBase { long id = args.getLong("id"); Uri uri = args.getParcelable("uri"); boolean image = args.getBoolean("image"); - CharSequence body = args.getCharSequence("body"); - int start = args.getInt("start"); EntityAttachment attachment = addAttachment(context, id, uri, image); + if (!image) + return null; File file = attachment.getFile(context); + Drawable d = Drawable.createFromPath(file.getAbsolutePath()); + if (d == null) + throw new IllegalArgumentException(context.getString(R.string.title_no_image)); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); + CharSequence body = args.getCharSequence("body"); + int start = args.getInt("start"); Uri cid = Uri.parse("cid:" + BuildConfig.APPLICATION_ID + "." + attachment.id); SpannableStringBuilder s = new SpannableStringBuilder(body); @@ -1421,6 +1426,9 @@ public class FragmentCompose extends FragmentBase { @Override protected void onExecuted(Bundle args, final Spanned body) { + if (body == null) + return; + etBody.setText(body); etBody.setSelection(args.getInt("start")); @@ -1433,6 +1441,8 @@ public class FragmentCompose extends FragmentBase { // External app sending absolute file if (ex instanceof SecurityException) handleFileShare(); + else if (ex instanceof IllegalArgumentException) + Snackbar.make(view, ex.toString(), Snackbar.LENGTH_LONG).show(); else Helper.unexpectedError(getFragmentManager(), ex); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fb6115687e..1ba1e79612 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -558,6 +558,7 @@ Synchronization will be performed on next account connection Folder does not exist The originally received message will be included + Image could not be decoded Messages moved across accounts will be downloaded again resulting in extra data usage Raw message saved Attachment saved