From 05972fc702683066de26b6a603f818a4d5e21e98 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Tue, 30 Jul 2024 20:47:08 +0200 Subject: [PATCH 1/3] fix(Quotes): increase TLD max length --- .../joinmastodon/android/ui/displayitems/StatusDisplayItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index a2c824fdc..5f1fb9f65 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -87,7 +87,7 @@ public abstract class StatusDisplayItem{ private final static Pattern QUOTE_MENTION_PATTERN=Pattern.compile("(?:

)?\\s?(?:RE:\\s?()?)?]*>https:\\/\\/<\\/span>[^<]+<\\/span>[^<]+<\\/span><\\/a>(?:<\\/p>)?$"); - private final static Pattern QUOTE_PATTERN=Pattern.compile("[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$"); + private final static Pattern QUOTE_PATTERN=Pattern.compile("[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,8}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$"); public void setAncestryInfo( boolean hasDescendantNeighbor, From 117037e7e8f75974b885128c0349e8b9f3477262 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Tue, 30 Jul 2024 20:47:37 +0200 Subject: [PATCH 2/3] feat(Quote): only show quotes for status without attachments --- .../joinmastodon/android/ui/displayitems/StatusDisplayItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 5f1fb9f65..3bd4e0df0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -338,7 +338,7 @@ public abstract class StatusDisplayItem{ if(!statusForContent.mediaAttachments.isEmpty() && statusForContent.poll==null) // add spacing if immediately preceded by attachment contentItems.add(new DummyStatusDisplayItem(parentID, fragment)); contentItems.addAll(buildItems(fragment, statusForContent.quote, accountID, parentObject, knownAccounts, filterContext, FLAG_NO_FOOTER|FLAG_INSET|FLAG_NO_EMOJI_REACTIONS|FLAG_IS_FOR_QUOTE)); - } else if((flags & FLAG_INSET)==0){ + } else if((flags & FLAG_INSET)==0 && statusForContent.mediaAttachments.isEmpty()){ tryAddNonOfficialQuote(statusForContent, fragment, accountID); } if(contentItems!=items && statusForContent.spoilerRevealed){ From 4b6c6cbcfec29ffb0b4e32fdbea49fbaf0fa6187 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Tue, 30 Jul 2024 21:51:36 +0200 Subject: [PATCH 3/3] refactor(Quotes): inlcude URL scheme in quote regex This should increase the performance, whilst rejecting more incorrect URLs and allowing more correct ones. --- .../android/ui/displayitems/StatusDisplayItem.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 3bd4e0df0..0109a954c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -87,7 +87,7 @@ public abstract class StatusDisplayItem{ private final static Pattern QUOTE_MENTION_PATTERN=Pattern.compile("(?:

)?\\s?(?:RE:\\s?()?)?]*>https:\\/\\/<\\/span>[^<]+<\\/span>[^<]+<\\/span><\\/a>(?:<\\/p>)?$"); - private final static Pattern QUOTE_PATTERN=Pattern.compile("[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,8}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$"); + private final static Pattern QUOTE_PATTERN=Pattern.compile("https://[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,8}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$"); public void setAncestryInfo( boolean hasDescendantNeighbor, @@ -426,7 +426,7 @@ public abstract class StatusDisplayItem{ if(!matcher.find()) return; - String quoteURL="https://"+matcher.group(); + String quoteURL=matcher.group(); if (UiUtils.looksLikeFediverseUrl(quoteURL)) { new GetSearchResults(quoteURL, GetSearchResults.Type.STATUSES, true, null, 0, 0).setCallback(new Callback<>(){