From 14a5ff05461e931ece42a660aa0759f0b8eb3878 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Mon, 23 Nov 2020 12:00:18 +1100 Subject: [PATCH] temporarily disable image with extension like '.ico' to make it the same iOS (just accept jpg, png and gif) --- .../securesms/linkpreview/LinkPreviewRepository.java | 5 +++++ .../securesms/linkpreview/LinkPreviewUtil.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java b/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java index a849a5e77..9bc08332f 100644 --- a/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java +++ b/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java @@ -147,6 +147,11 @@ public class LinkPreviewRepository implements InjectableType { imageUrl = Optional.absent(); } + if (imageUrl.isPresent() && !LinkPreviewUtil.isVaildMimeType(imageUrl.get())) { + Log.i(TAG, "Image URL was invalid mime type. Skipping."); + imageUrl = Optional.absent(); + } + callback.onComplete(new Metadata(title, imageUrl)); } }); diff --git a/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java b/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java index abe901806..be7a586e7 100644 --- a/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java +++ b/src/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java @@ -17,6 +17,7 @@ import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.guava.Optional; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -96,6 +97,15 @@ public final class LinkPreviewUtil { } } + public static boolean isVaildMimeType(@NonNull String url) { + String[] vaildMimeType = {"jpg", "png", "gif", "jpeg"}; + if (url.contains(".")) { + String extenstion = url.substring(url.lastIndexOf(".") + 1).toLowerCase(); + return Arrays.asList(vaildMimeType).contains(extenstion); + } + return true; + } + public static @NonNull OpenGraph parseOpenGraphFields(@Nullable String html) { return parseOpenGraphFields(html, text -> Html.fromHtml(text).toString()); }