diff options
| author | 2017-12-11 22:22:39 +0000 | |
|---|---|---|
| committer | 2017-12-11 22:22:39 +0000 | |
| commit | 86b9d9b4b17c46902f58577827a0a686704a830d (patch) | |
| tree | 5c111d96a6ab84b12c788085fe1b5be4f5980454 | |
| parent | 8c919fd93cc35db80d77a68092458e1405ba8ccf (diff) | |
| parent | 4b6bceec365b9c7b5740d9160367311b359647c0 (diff) | |
Merge "Fix testCursorIsOnRight test case"
| -rw-r--r-- | core/java/android/text/StaticLayout.java | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 400b075d889d..53ddd1699d68 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -887,6 +887,7 @@ public class StaticLayout extends Layout { if ((bufEnd == bufStart || source.charAt(bufEnd - 1) == CHAR_NEW_LINE) && mLineCount < mMaximumVisibleLineCount) { + measured = MeasuredText.buildForBidi(source, bufEnd, bufEnd, textDir, measured); paint.getFontMetricsInt(fm); v = out(source, bufEnd, bufEnd, fm.ascent, fm.descent, @@ -894,7 +895,7 @@ public class StaticLayout extends Layout { v, spacingmult, spacingadd, null, null, fm, 0, - needMultiply, null, bufEnd, + needMultiply, measured, bufEnd, includepad, trackpad, addLastLineSpacing, null, null, bufStart, ellipsize, ellipsizedWidth, 0, paint, false); @@ -912,7 +913,7 @@ public class StaticLayout extends Layout { private int out(final CharSequence text, final int start, final int end, int above, int below, int top, int bottom, int v, final float spacingmult, final float spacingadd, final LineHeightSpan[] chooseHt, final int[] chooseHtv, final Paint.FontMetricsInt fm, - final int flags, final boolean needMultiply, @Nullable final MeasuredText measured, + final int flags, final boolean needMultiply, @NonNull final MeasuredText measured, final int bufEnd, final boolean includePad, final boolean trackPad, final boolean addLastLineLineSpacing, final char[] chs, final float[] widths, final int widthStart, final TextUtils.TruncateAt ellipsize, final float ellipsisWidth, @@ -921,7 +922,7 @@ public class StaticLayout extends Layout { final int off = j * mColumns; final int want = off + mColumns + TOP; int[] lines = mLines; - final int dir = (start == end) ? Layout.DIR_LEFT_TO_RIGHT : measured.getParagraphDir(); + final int dir = measured.getParagraphDir(); if (want >= lines.length) { final int[] grow = ArrayUtils.newUnpaddedIntArray(GrowingArrayUtils.growSize(want)); @@ -948,11 +949,7 @@ public class StaticLayout extends Layout { lines[off + TAB] |= flags & TAB_MASK; lines[off + HYPHEN] = flags; lines[off + DIR] |= dir << DIR_SHIFT; - if (start == end) { - mLineDirections[j] = Layout.DIRS_ALL_LEFT_TO_RIGHT; - } else { - mLineDirections[j] = measured.getDirections(start - widthStart, end - widthStart); - } + mLineDirections[j] = measured.getDirections(start - widthStart, end - widthStart); final boolean firstLine = (j == 0); final boolean currentLineIsTheLastVisibleOne = (j + 1 == mMaximumVisibleLineCount); |