am 8de4fb2f: am 2f0e6f0c: Merge "Fix off-by-one error in computeEllipsis" into lmp-mr1-dev
* commit '8de4fb2fe53ed7707500d9cdf737953bed3dec7e':
Fix off-by-one error in computeEllipsis
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 02297e3..74b7b69 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -416,7 +416,11 @@
currentTextWidth = widths[here - paraStart];
}
- v = out(source, here, endPos,
+ int ellipseEnd = endPos;
+ if (mMaximumVisibleLineCount == 1 && ellipsize == TextUtils.TruncateAt.MIDDLE) {
+ ellipseEnd = paraEnd;
+ }
+ v = out(source, here, ellipseEnd,
above, below, top, bottom,
v, spacingmult, spacingadd, chooseHt,chooseHtv, fm, hasTabOrEmoji,
needMultiply, chdirs, dir, easy, bufEnd, includepad, trackpad,
@@ -704,7 +708,7 @@
int left = 0, right = len;
float ravail = (avail - ellipsisWidth) / 2;
- for (right = len; right >= 0; right--) {
+ for (right = len; right > 0; right--) {
float w = widths[right - 1 + lineStart - widthStart];
if (w + rsum > ravail) {