From d2a95ebc5e3cd917ba21c05229c56d9e75897450 Mon Sep 17 00:00:00 2001 From: Tamme Schichler Date: Wed, 8 Jan 2025 13:42:18 +0100 Subject: [PATCH 1/2] Detect hashtag links just like the web UI does See . --- .../android/ui/text/HtmlParser.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java index b7a56c6d59..9dd13af6f6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java @@ -145,15 +145,14 @@ public void head(@NonNull Node node, int depth){ Object linkObject=null; String href=el.attr("href"); LinkSpan.Type linkType; - if(el.hasClass("hashtag")){ - String text=el.text(); - if(text.startsWith("#")){ - linkType=LinkSpan.Type.HASHTAG; - href=text.substring(1); - linkObject=tagsByTag.get(text.substring(1).toLowerCase()); - }else{ - linkType=LinkSpan.Type.URL; - } + String text=el.text(); + boolean startsWithHash=text.startsWith("#"); + Node previous=el.previousSibling(); + if(startsWithHash || previous != null && previous.text().startsWith("#")){ + String tag=startsWithHash ? text.substring(1) : text; + linkType=LinkSpan.Type.HASHTAG; + href=tag; + linkObject=tagsByTag.get(tag.toLowerCase()); }else if(el.hasClass("mention")){ String id=idsByUrl.get(href); if(id!=null){ From 491dff0929f04c1cce1385f25c5711238cc8c229 Mon Sep 17 00:00:00 2001 From: Tamme Schichler Date: Mon, 13 Jan 2025 17:43:29 +0100 Subject: [PATCH 2/2] Detect hash at the end of the previous node of a link, not the beginning --- .../main/java/org/joinmastodon/android/ui/text/HtmlParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java index 9dd13af6f6..cbb8c31dcf 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java @@ -148,7 +148,7 @@ public void head(@NonNull Node node, int depth){ String text=el.text(); boolean startsWithHash=text.startsWith("#"); Node previous=el.previousSibling(); - if(startsWithHash || previous != null && previous.text().startsWith("#")){ + if(startsWithHash || previous != null && previous.text().endsWith("#")){ String tag=startsWithHash ? text.substring(1) : text; linkType=LinkSpan.Type.HASHTAG; href=tag;