Merge "Fix OOB crash in ContentCapture for translated views" into sc-dev am: f7fb6c535e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15546784 Change-Id: Iaa763bccd737636ec9eb3ed95877a19226d5d43a
This commit is contained in:
@@ -11857,6 +11857,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
|||||||
|
|
||||||
if (text != null) {
|
if (text != null) {
|
||||||
if (expandedTopChar > 0 || expandedBottomChar < text.length()) {
|
if (expandedTopChar > 0 || expandedBottomChar < text.length()) {
|
||||||
|
// Cap the offsets to avoid an OOB exception. That can happen if the
|
||||||
|
// displayed/layout text, on which these offsets are calculated, is longer
|
||||||
|
// than the original text (such as when the view is translated by the
|
||||||
|
// platform intelligence).
|
||||||
|
// TODO(b/196433694): Figure out how to better handle the offset
|
||||||
|
// calculations for this case (so we don't unnecessarily cutoff the original
|
||||||
|
// text, for example).
|
||||||
|
expandedTopChar = Math.min(expandedTopChar, text.length());
|
||||||
|
expandedBottomChar = Math.min(expandedBottomChar, text.length());
|
||||||
text = text.subSequence(expandedTopChar, expandedBottomChar);
|
text = text.subSequence(expandedTopChar, expandedBottomChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user