From 13debc2e9c70906d62e2e2ff52d18bb2d438d9e5 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 26 Jan 2024 19:10:33 +0100 Subject: [PATCH] Fixed video thumbnail generation for older Android versions --- .../main/java/eu/faircode/email/AdapterMedia.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMedia.java b/app/src/main/java/eu/faircode/email/AdapterMedia.java index 940b7d1a8a..f4804ab221 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMedia.java +++ b/app/src/main/java/eu/faircode/email/AdapterMedia.java @@ -33,6 +33,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.ParcelFileDescriptor; +import android.provider.MediaStore; import android.text.TextUtils; import android.util.Size; import android.view.LayoutInflater; @@ -148,12 +149,17 @@ public class AdapterMedia extends RecyclerView.Adapter } } else if (type != null && type.startsWith("video/")) { try { - Bitmap bm = ThumbnailUtils.createVideoThumbnail(file, new Size(max, max), null); + // https://developer.android.com/reference/android/media/ThumbnailUtils + Bitmap bm; + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) + bm = ThumbnailUtils.createVideoThumbnail(file.getAbsolutePath(), MediaStore.Images.Thumbnails.MINI_KIND); + else + bm = ThumbnailUtils.createVideoThumbnail(file, new Size(max, max), null); if (bm == null) - return null; + throw new IllegalArgumentException("Thumbnail generation failed"); return new BitmapDrawable(context.getResources(), bm); } catch (Throwable ex) { - Log.i(ex); + Log.w(ex); return context.getDrawable(R.drawable.twotone_ondemand_video_24); } } else {