Avoid a crash trying to get a substring whose start is after its end.
Constrain the start of the extracted text, not just the end, to the length
of the content.
Approver: ryanpc
Bug: 2323813
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index bcdefb3..cdaba8a 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4531,6 +4531,11 @@
// Now use the delta to determine the actual amount of text
// we need.
partialEndOffset += delta;
+ if (partialStartOffset > N) {
+ partialStartOffset = N;
+ } else if (partialStartOffset < 0) {
+ partialStartOffset = 0;
+ }
if (partialEndOffset > N) {
partialEndOffset = N;
} else if (partialEndOffset < 0) {