Merge pull request #355

fix: use correct hashtag text to prevent crash
This commit is contained in:
LucasGGamerM 2024-03-17 13:26:19 -03:00 committed by GitHub
commit b1b03a3ada
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 7 deletions

View File

@ -302,7 +302,7 @@ public class SignupFragment extends ToolbarFragment{
@Override @Override
public void tail(Node node, int depth){ public void tail(Node node, int depth){
if(node instanceof Element){ if(node instanceof Element){
ssb.setSpan(new LinkSpan("", SignupFragment.this::onGoBackLinkClick, LinkSpan.Type.CUSTOM, null, null, null), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.setSpan(new LinkSpan("", SignupFragment.this::onGoBackLinkClick, LinkSpan.Type.CUSTOM, null, null, null, null), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new TypefaceSpan("sans-serif-medium"), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.setSpan(new TypefaceSpan("sans-serif-medium"), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
} }

View File

@ -72,7 +72,7 @@ public class DecentralizationExplainerSheet extends BottomSheet{
@Override @Override
public void tail(Node node, int depth){ public void tail(Node node, int depth){
if(node instanceof Element){ if(node instanceof Element){
ssb.setSpan(new LinkSpan("", DecentralizationExplainerSheet.this::showActivityPubAlert, LinkSpan.Type.CUSTOM, null, null, null), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.setSpan(new LinkSpan("", DecentralizationExplainerSheet.this::showActivityPubAlert, LinkSpan.Type.CUSTOM, null, null, null, null), spanStart, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
} }
}); });

View File

@ -136,8 +136,8 @@ public class HtmlParser{
Object linkObject=null; Object linkObject=null;
String href=el.attr("href"); String href=el.attr("href");
LinkSpan.Type linkType; LinkSpan.Type linkType;
if(el.hasClass("hashtag")){
String text=el.text(); String text=el.text();
if(el.hasClass("hashtag")){
if(text.startsWith("#")){ if(text.startsWith("#")){
linkType=LinkSpan.Type.HASHTAG; linkType=LinkSpan.Type.HASHTAG;
href=text.substring(1); href=text.substring(1);
@ -156,7 +156,7 @@ public class HtmlParser{
}else{ }else{
linkType=LinkSpan.Type.URL; linkType=LinkSpan.Type.URL;
} }
openSpans.add(new SpanInfo(new LinkSpan(href, null, linkType, accountID, linkObject, parentObject), ssb.length(), el)); openSpans.add(new SpanInfo(new LinkSpan(href, null, linkType, accountID, linkObject, parentObject, text), ssb.length(), el));
} }
case "br" -> ssb.append('\n'); case "br" -> ssb.append('\n');
case "span" -> { case "span" -> {
@ -315,7 +315,7 @@ public class HtmlParser{
String url=matcher.group(3); String url=matcher.group(3);
if(TextUtils.isEmpty(matcher.group(4))) if(TextUtils.isEmpty(matcher.group(4)))
url="http://"+url; url="http://"+url;
ssb.setSpan(new LinkSpan(url, null, LinkSpan.Type.URL, null, null, null), matcher.start(3), matcher.end(3), 0); ssb.setSpan(new LinkSpan(url, null, LinkSpan.Type.URL, null, null, null, url), matcher.start(3), matcher.end(3), 0);
}while(matcher.find()); // Find more URLs }while(matcher.find()); // Find more URLs
return ssb; return ssb;
} }

View File

@ -18,14 +18,16 @@ public class LinkSpan extends CharacterStyle {
private String accountID; private String accountID;
private Object linkObject; private Object linkObject;
private Object parentObject; private Object parentObject;
private String text;
public LinkSpan(String link, OnLinkClickListener listener, Type type, String accountID, Object linkObject, Object parentObject){ public LinkSpan(String link, OnLinkClickListener listener, Type type, String accountID, Object linkObject, Object parentObject, String text){
this.listener=listener; this.listener=listener;
this.link=link; this.link=link;
this.type=type; this.type=type;
this.accountID=accountID; this.accountID=accountID;
this.linkObject=linkObject; this.linkObject=linkObject;
this.parentObject=parentObject; this.parentObject=parentObject;
this.text=text;
} }
public int getColor(){ public int getColor(){
@ -64,7 +66,7 @@ public class LinkSpan extends CharacterStyle {
} }
public String getText() { public String getText() {
return parentObject.toString(); return text;
} }
public Type getType(){ public Type getType(){