diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index 8700af802ae64..fe3664111815c 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -1727,6 +1727,17 @@ public abstract class Layout { } } + /** + * Inform this layout that not all of its lines will be displayed, because a maximum number of + * lines has been set on the associated TextView. + * + * A non strictly positive value means that all lines are displayed. + * + * @param lineCount number of visible lines + * @hide + */ + public void setMaximumVisibleLineCount(int lineCount) {} + private CharSequence mText; private TextPaint mPaint; /* package */ TextPaint mWorkPaint; @@ -1765,14 +1776,4 @@ public abstract class Layout { /* package */ static final Directions DIRS_ALL_RIGHT_TO_LEFT = new Directions(new int[] { 0, RUN_LENGTH_MASK | RUN_RTL_FLAG }); - /** - * Inform this layout that not all of its lines will be displayed, because a maximum number of - * lines has been set on the associated TextView. - * - * A non positive value means that all lines are displayed. - * - * @param line line number of the last visible line (line numbers start at 1 for the first line) - * @hide - */ - public void setMaximumVisibleLineCount(int line) {} } diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index ac3df795c760c..27fe24e7adadf 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -360,8 +360,6 @@ public class StaticLayout extends Layout okbottom = fitbottom; } } else { - if (ellipsize != null) { - // Break only at spaces using ok indexes. if (ok != here) { // Log.e("text", "output ok " + here + " to " +ok); @@ -377,43 +375,7 @@ public class StaticLayout extends Layout choosehtv, fm, hasTabOrEmoji, needMultiply, paraStart, chdirs, dir, easy, ok == bufend, includepad, trackpad, - chs, widths, here - paraStart, - ellipsize, ellipsizedWidth, okwidth, - paint); - - here = ok; - } else { - // Act like it fit even though it didn't. - - fitwidth = w; - here = fit = j + 1; - - if (fmtop < fittop) - fittop = fmtop; - if (fmascent < fitascent) - fitascent = fmascent; - if (fmdescent > fitdescent) - fitdescent = fmdescent; - if (fmbottom > fitbottom) - fitbottom = fmbottom; - } - } else { - if (ok != here) { - // Log.e("text", "output ok " + here + " to " +ok); - - while (ok < spanEnd && chs[ok - paraStart] == ' ') { - ok++; - } - - v = out(source, - here, ok, - okascent, okdescent, oktop, okbottom, - v, - spacingmult, spacingadd, chooseht, - choosehtv, fm, hasTabOrEmoji, - needMultiply, paraStart, chdirs, dir, easy, - ok == bufend, includepad, trackpad, - chs, widths, here - paraStart, + chs, widths, paraStart, ellipsize, ellipsizedWidth, okwidth, paint); @@ -429,7 +391,7 @@ public class StaticLayout extends Layout choosehtv, fm, hasTabOrEmoji, needMultiply, paraStart, chdirs, dir, easy, fit == bufend, includepad, trackpad, - chs, widths, here - paraStart, + chs, widths, paraStart, ellipsize, ellipsizedWidth, fitwidth, paint); @@ -451,13 +413,12 @@ public class StaticLayout extends Layout needMultiply, paraStart, chdirs, dir, easy, here + 1 == bufend, includepad, trackpad, - chs, widths, here - paraStart, + chs, widths, paraStart, ellipsize, ellipsizedWidth, widths[here - paraStart], paint); here = here + 1; } - } if (here < spanStart) { // didn't output all the text for this span @@ -500,7 +461,7 @@ public class StaticLayout extends Layout choosehtv, fm, hasTabOrEmoji, needMultiply, paraStart, chdirs, dir, easy, paraEnd == bufend, includepad, trackpad, - chs, widths, here - paraStart, + chs, widths, paraStart, ellipsize, ellipsizedWidth, w, paint); } @@ -620,19 +581,6 @@ public class StaticLayout extends Layout return false; } -/* - private static void dump(byte[] data, int count, String label) { - if (false) { - System.out.print(label); - - for (int i = 0; i < count; i++) - System.out.print(" " + data[i]); - - System.out.println(); - } - } -*/ - private int out(CharSequence text, int start, int end, int above, int below, int top, int bottom, int v, float spacingmult, float spacingadd, @@ -735,8 +683,8 @@ public class StaticLayout extends Layout if (easy) { mLineDirections[j] = linedirs; } else { - mLineDirections[j] = AndroidBidi.directions(dir, chdirs, widstart, chs, - widstart, end - start); + mLineDirections[j] = AndroidBidi.directions(dir, chdirs, start - widstart, chs, + start - widstart, end - start); } // If ellipsize is in marquee mode, do not apply ellipsis on the first line @@ -875,7 +823,7 @@ public class StaticLayout extends Layout @Override public int getLineDescent(int line) { int descent = mLines[mColumns * line + DESCENT]; - if (mMaximumVisibleLineCount > 0 && line >= mMaximumVisibleLineCount - 1 && + if (mMaximumVisibleLineCount > 0 && line >= mMaximumVisibleLineCount - 1 && // -1 intended line != mLineCount) { descent += getBottomPadding(); } @@ -939,8 +887,8 @@ public class StaticLayout extends Layout * @hide */ @Override - public void setMaximumVisibleLineCount(int line) { - mMaximumVisibleLineCount = line; + public void setMaximumVisibleLineCount(int lineCount) { + mMaximumVisibleLineCount = lineCount; } private int mLineCount;