From bc6290aba0e307469a4e7bedb742d9ae1d4d53b9 Mon Sep 17 00:00:00 2001 From: stom79 Date: Wed, 10 Oct 2018 07:58:28 +0200 Subject: [PATCH] Fix issue --- .../mastodon/client/Entities/Status.java | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java index b99a437da..fabf27282 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java @@ -757,16 +757,16 @@ public class Status implements Parcelable{ //noinspection deprecation spannableStringT = new SpannableString(Html.fromHtml(spannableString.toString().replaceAll("^

","").replaceAll("

","

").replaceAll("

",""))); + URLSpan[] spans = spannableStringT.getSpans(0, spannableStringT.length(), URLSpan.class); + for (URLSpan span : spans) { + spannableStringT.removeSpan(span); + } matcher = Helper.twitterPattern.matcher(spannableStringT); while (matcher.find()){ int matchStart = matcher.start(2); int matchEnd = matcher.end(); final String twittername = matcher.group(2); - URLSpan[] spans = spannableStringT.getSpans(matchStart, matchEnd, URLSpan.class); - for (URLSpan span : spans) { - spannableStringT.removeSpan(span); - } if( matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) spannableStringT.setSpan(new ClickableSpan() { @Override @@ -792,10 +792,6 @@ public class Status implements Parcelable{ //Accounts can be mentioned several times so we have to loop for(int startPosition = -1 ; (startPosition = spannableStringT.toString().toLowerCase().indexOf(targetedAccount.toLowerCase(), startPosition + 1)) != -1 ; startPosition++){ int endPosition = startPosition + targetedAccount.length(); - URLSpan[] spans = spannableStringT.getSpans(startPosition, endPosition, URLSpan.class); - for (URLSpan span : spans) { - spannableStringT.removeSpan(span); - } if( endPosition <= spannableStringT.toString().length() && endPosition >= startPosition) spannableStringT.setSpan(new ClickableSpan() { @Override @@ -828,10 +824,7 @@ public class Status implements Parcelable{ for(int startPosition = -1 ; (startPosition = spannableStringT.toString().toLowerCase().indexOf(key.toLowerCase(), startPosition + 1)) != -1 ; startPosition++){ int endPosition = startPosition + key.length(); - URLSpan[] spans = spannableStringT.getSpans(startPosition, endPosition, URLSpan.class); - for (URLSpan span : spans) { - spannableStringT.removeSpan(span); - } + if( endPosition <= spannableStringT.toString().length() && endPosition >= startPosition) { spannableStringT.setSpan(new ClickableSpan() { @Override @@ -891,10 +884,6 @@ public class Status implements Parcelable{ for(int startPosition = -1 ; (startPosition = spannableStringT.toString().toLowerCase().indexOf(targetedAccount.toLowerCase(), startPosition + 1)) != -1 ; startPosition++){ int endPosition = startPosition + targetedAccount.length(); - URLSpan[] spans = spannableStringT.getSpans(startPosition, endPosition, URLSpan.class); - for (URLSpan span : spans) { - spannableStringT.removeSpan(span); - } if( endPosition <= spannableStringT.toString().length() && endPosition >= startPosition) spannableStringT.setSpan(new ClickableSpan() { @Override @@ -925,10 +914,6 @@ public class Status implements Parcelable{ while (matcher.find()){ int matchStart = matcher.start(1); int matchEnd = matcher.end(); - URLSpan[] spans = spannableStringT.getSpans(matchStart, matchEnd, URLSpan.class); - for (URLSpan span : spans) { - spannableStringT.removeSpan(span); - } final String tag = spannableStringT.toString().substring(matchStart, matchEnd); if( matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) spannableStringT.setSpan(new ClickableSpan() {