From c93d882fe17730bbb711d74940b9680d1c470acf Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 22 Sep 2021 16:21:13 -0300 Subject: [PATCH] Don't allow API<23 to display gif videos in conversation list. --- .../thoughtcrime/securesms/components/ThumbnailView.java | 7 +++++-- .../securesms/giph/mp4/GiphyMp4PlaybackPolicy.java | 4 +++- .../java/org/thoughtcrime/securesms/mms/VideoSlide.java | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java index 753604dce1..b954bc8fdf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java @@ -10,6 +10,7 @@ import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RoundRectShape; import android.graphics.drawable.shapes.Shape; import android.net.Uri; +import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; @@ -438,8 +439,10 @@ public class ThumbnailView extends FrameLayout { .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .transition(withCrossFade()), fit); - if (slide.isInProgress()) return request; - else return request.apply(RequestOptions.errorOf(R.drawable.ic_missing_thumbnail_picture)); + boolean doNotShowMissingThumbnailImage = GiphyMp4PlaybackPolicy.maxSimultaneousPlaybackInConversation() == 0; + + if (slide.isInProgress() || doNotShowMissingThumbnailImage) return request; + else return request.apply(RequestOptions.errorOf(R.drawable.ic_missing_thumbnail_picture)); } private RequestBuilder buildPlaceholderGlideRequest(@NonNull GlideRequests glideRequests, @NonNull Slide slide) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PlaybackPolicy.java b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PlaybackPolicy.java index aa60c1cbdd..159b5353c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PlaybackPolicy.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PlaybackPolicy.java @@ -1,5 +1,7 @@ package org.thoughtcrime.securesms.giph.mp4; +import android.os.Build; + import com.google.android.exoplayer2.mediacodec.MediaCodecInfo; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil; import com.google.android.exoplayer2.util.MimeTypes; @@ -34,7 +36,7 @@ public final class GiphyMp4PlaybackPolicy { } public static int maxSimultaneousPlaybackInConversation() { - return maxSimultaneousPlaybackWithRatio(1f - SEARCH_RESULT_RATIO); + return Build.VERSION.SDK_INT >= 23 ? maxSimultaneousPlaybackWithRatio(1f - SEARCH_RESULT_RATIO) : 0; } public static int maxSimultaneousPlaybackInSearchResults() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/VideoSlide.java b/app/src/main/java/org/thoughtcrime/securesms/mms/VideoSlide.java index 4f9074712f..c1b01b48b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/VideoSlide.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/VideoSlide.java @@ -55,7 +55,7 @@ public class VideoSlide extends Slide { @Override public boolean hasPlayOverlay() { - return !(isVideoGif() && GiphyMp4PlaybackPolicy.autoplay()); + return !(isVideoGif() && GiphyMp4PlaybackPolicy.autoplay()) || GiphyMp4PlaybackPolicy.maxSimultaneousPlaybackInConversation() == 0; } @Override