From c68b4b6b2ed4edf456aa7aeec4cafb1a53277101 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 9 Dec 2022 11:55:50 +0100 Subject: [PATCH] Fix issue #366 - Text with links not displayed --- .../android/helper/SpannableHelper.java | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 8db48cc4..9508f750 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -41,7 +41,6 @@ import android.text.style.URLSpan; import android.util.Patterns; import android.view.LayoutInflater; import android.view.View; -import android.webkit.URLUtil; import android.widget.Toast; import androidx.annotation.NonNull; @@ -152,6 +151,7 @@ public class SpannableHelper { } else if (announcement != null) { emojiList = announcement.emojis; } + //UrlDetails will contain links having a text different from the url HashMap urlDetails = new HashMap<>(); if (convertHtml) { Matcher matcherALink = Helper.aLink.matcher(text); @@ -163,7 +163,7 @@ public class SpannableHelper { if (urlText != null && urlText.startsWith(">")) { urlText = urlText.substring(1); } - if (url != null && urlText != null && !url.equals(urlText) && !urlText.contains("= matchStart) { @@ -351,7 +343,7 @@ public class SpannableHelper { } } httpsURLConnection.getInputStream().close(); - if (redirect != null && finalURl1 != null && redirect.compareTo(finalURl1) != 0) { + if (redirect != null && redirect.compareTo(finalURl1) != 0) { URL redirectURL = new URL(redirect); String host = redirectURL.getHost(); String protocol = redirectURL.getProtocol(); @@ -476,7 +468,7 @@ public class SpannableHelper { for (Map.Entry entry : urlDetails.entrySet()) { String value = entry.getValue(); - if (value.startsWith("@") || value.startsWith("#") || !URLUtil.isValidUrl(value)) { + if (value.startsWith("@") || value.startsWith("#")) { continue; } SpannableString contentUrl; @@ -485,7 +477,7 @@ public class SpannableHelper { else contentUrl = new SpannableString(Html.fromHtml(value)); - Pattern word = Pattern.compile(contentUrl.toString()); + Pattern word = Pattern.compile(Pattern.quote(contentUrl.toString())); Matcher matcherLink = word.matcher(content); while (matcherLink.find()) { String url = entry.getKey();