summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-12-11 22:22:39 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-12-11 22:22:39 +0000
commit86b9d9b4b17c46902f58577827a0a686704a830d (patch)
tree5c111d96a6ab84b12c788085fe1b5be4f5980454
parent8c919fd93cc35db80d77a68092458e1405ba8ccf (diff)
parent4b6bceec365b9c7b5740d9160367311b359647c0 (diff)
Merge "Fix testCursorIsOnRight test case"
-rw-r--r--core/java/android/text/StaticLayout.java13
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);