Merge "Improve ellipsize performance" into rvc-dev am: b3b4990453

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14905055

Change-Id: Ib9c5c9b376ea08177c855a10a5a3d5c1112c0ba8
This commit is contained in:
TreeHugger Robot
2021-06-26 02:52:03 +00:00
committed by Automerger Merge Worker

View File

@@ -2350,7 +2350,10 @@ public abstract class Layout {
final int ellipsisStringLen = ellipsisString.length(); final int ellipsisStringLen = ellipsisString.length();
// Use the ellipsis string only if there are that at least as many characters to replace. // Use the ellipsis string only if there are that at least as many characters to replace.
final boolean useEllipsisString = ellipsisCount >= ellipsisStringLen; final boolean useEllipsisString = ellipsisCount >= ellipsisStringLen;
for (int i = 0; i < ellipsisCount; i++) { final int min = Math.max(0, start - ellipsisStart - lineStart);
final int max = Math.min(ellipsisCount, end - ellipsisStart - lineStart);
for (int i = min; i < max; i++) {
final char c; final char c;
if (useEllipsisString && i < ellipsisStringLen) { if (useEllipsisString && i < ellipsisStringLen) {
c = ellipsisString.charAt(i); c = ellipsisString.charAt(i);
@@ -2359,11 +2362,9 @@ public abstract class Layout {
} }
final int a = i + ellipsisStart + lineStart; final int a = i + ellipsisStart + lineStart;
if (start <= a && a < end) {
dest[destoff + a - start] = c; dest[destoff + a - start] = c;
} }
} }
}
/** /**
* Stores information about bidirectional (left-to-right or right-to-left) * Stores information about bidirectional (left-to-right or right-to-left)