diff --git a/app/src/main/java/eu/faircode/email/EntityAttachment.java b/app/src/main/java/eu/faircode/email/EntityAttachment.java index bc742a75a0..d20704f888 100644 --- a/app/src/main/java/eu/faircode/email/EntityAttachment.java +++ b/app/src/main/java/eu/faircode/email/EntityAttachment.java @@ -20,6 +20,7 @@ package eu.faircode.email; */ import android.content.Context; +import android.os.Build; import android.text.TextUtils; import androidx.annotation.NonNull; @@ -30,6 +31,8 @@ import androidx.room.PrimaryKey; import java.io.File; import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -54,6 +57,21 @@ public class EntityAttachment { static final Integer PGP_MESSAGE = 1; static final Integer PGP_SIGNATURE = 2; + // https://developer.android.com/guide/topics/media/media-formats#image-formats + private static final List IMAGE_TYPES = Collections.unmodifiableList(Arrays.asList( + "image/bmp", + "image/gif", + "image/jpeg", + "image/jpg", + "image/png", + "image/webp" + )); + + private static final List IMAGE_TYPES8 = Collections.unmodifiableList(Arrays.asList( + "image/heic", + "image/heif" + )); + @PrimaryKey(autoGenerate = true) public Long id; @NonNull @@ -77,7 +95,11 @@ public class EntityAttachment { } boolean isImage() { - return type.startsWith("image/"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + if (IMAGE_TYPES8.contains(type)) + return true; + + return IMAGE_TYPES.contains(type); } File getFile(Context context) {