Fixes an issue with the text which is fully clickable (underline) when a screen name is mentioned twice (or more)

This commit is contained in:
tom79 2017-08-10 14:11:20 +02:00
parent 12aff1e308
commit 58ebb4877f
1 changed files with 21 additions and 19 deletions

View File

@ -54,6 +54,7 @@ import android.text.Spanned;
import android.text.TextPaint;
import android.text.style.ClickableSpan;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Patterns;
import android.view.Menu;
import android.view.MenuItem;
@ -1066,8 +1067,9 @@ public class Helper {
String targetedAccount = "@" + mention.getUsername();
if (spannableString.toString().contains(targetedAccount)) {
int startPosition = spannableString.toString().indexOf(targetedAccount);
int endPosition = spannableString.toString().lastIndexOf(targetedAccount) + targetedAccount.length();
//Accounts can be mentioned several times so we have to loop
for(int startPosition = -1 ; (startPosition = spannableString.toString().indexOf(targetedAccount, startPosition + 1)) != -1 ; startPosition++){
int endPosition = startPosition + targetedAccount.length();
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(View textView) {
@ -1084,7 +1086,7 @@ public class Helper {
},
startPosition, endPosition,
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}
}
}