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