diff options
author | Thomas <tschneider.ac@gmail.com> | 2020-06-06 16:43:45 +0200 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2020-06-06 16:43:45 +0200 |
commit | eadb766f82b1048a5ed8e31026a563b5ee818aba (patch) | |
tree | 22edb697d25d4d6e28d6d180007eb167d8fa844a | |
parent | e4d860583373e1c0484eb5546c1cbebbe80571f1 (diff) |
Fix some crashes
-rw-r--r-- | app/src/main/java/app/fedilab/android/client/Entities/Account.java | 10 | ||||
-rw-r--r-- | app/src/main/java/app/fedilab/android/client/Entities/Status.java | 11 |
2 files changed, 11 insertions, 10 deletions
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Account.java b/app/src/main/java/app/fedilab/android/client/Entities/Account.java index f901f3fe1..bacddd86a 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Account.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Account.java @@ -723,7 +723,7 @@ public class Account implements Parcelable { int startPositionTar = spannableString.toString().indexOf("@" + this.getMoved_to_account().getAcct()); int endPositionTar = startPositionTar + ("@" + this.getMoved_to_account().getAcct()).length(); final Account idTar = this.getMoved_to_account(); - if (endPositionTar <= spannableString.toString().length() && endPositionTar >= startPositionTar) + if (startPositionTar >= 0 && endPositionTar <= spannableString.toString().length() && endPositionTar >= startPositionTar) spannableString.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -801,7 +801,7 @@ public class Account implements Parcelable { int matchStart = matcher.start(0); int matchEnd = matcher.end(); final String url = fieldSpan.toString().substring(matchStart, matchEnd); - if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { + if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { fieldSpan.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -832,7 +832,7 @@ public class Account implements Parcelable { int matchStart = matcher.start(0); int matchEnd = matcher.end(); final String email = fieldSpan.toString().substring(matchStart, matchEnd); - if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { + if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { fieldSpan.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -865,7 +865,7 @@ public class Account implements Parcelable { int matchStart = matcher.start(1); int matchEnd = matcher.end(); final String tag = fieldSpan.toString().substring(matchStart, matchEnd); - if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) + if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) fieldSpan.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -935,7 +935,7 @@ public class Account implements Parcelable { int matchStart = matcher.start(0); int matchEnd = matcher.end(); final String url = fieldSpan.toString().substring(matchStart, matchEnd); - if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { + if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) { fieldSpan.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java index e431a69e0..063f477d3 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java @@ -525,7 +525,7 @@ public class Status implements Parcelable { int matchStart = matcher.start(2); int matchEnd = matcher.end(); final String twittername = matcher.group(2); - if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) + if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) spannableStringT.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -574,7 +574,7 @@ public class Status implements Parcelable { endPosition = startPosition + key.length(); } //Accounts can be mentioned several times so we have to loop - if (endPosition <= spannableStringT.toString().length() && endPosition >= startPosition) + if (startPosition >= 0 && endPosition <= spannableStringT.toString().length() && endPosition >= startPosition) spannableStringT.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -788,7 +788,7 @@ public class Status implements Parcelable { int matchStart = matcher.start(1); int matchEnd = matcher.end(); final String tag = spannableStringT.toString().substring(matchStart, matchEnd); - if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) + if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) spannableStringT.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -797,6 +797,7 @@ public class Status implements Parcelable { Bundle b = new Bundle(); b.putString("tag", tag.substring(1)); intent.putExtras(b); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } @@ -817,7 +818,7 @@ public class Status implements Parcelable { int matchStart = matcher.start(1); int matchEnd = matcher.end(); final String groupname = spannableStringT.toString().substring(matchStart, matchEnd); - if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) + if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart) spannableStringT.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { @@ -870,7 +871,7 @@ public class Status implements Parcelable { int matchStart = matcherALink.start(); int matchEnd = matcherALink.end(); final String url = contentSpanTranslated.toString().substring(matcherALink.start(1), matcherALink.end(1)); - if (matchEnd <= contentSpanTranslated.toString().length() && matchEnd >= matchStart) + if (matchStart >= 0 && matchEnd <= contentSpanTranslated.toString().length() && matchEnd >= matchStart) contentSpanTranslated.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View textView) { |