Merge "Fix OOB crash in ContentCapture for translated views" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-08-13 21:59:25 +00:00
committed by Android (Google) Code Review

View File

@@ -11857,6 +11857,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if (text != null) {
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);
}