summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/text/StaticLayout.java6
-rw-r--r--core/tests/coretests/src/android/text/StaticLayoutTest.java11
2 files changed, 16 insertions, 1 deletions
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index a8c6aa6cbbbb..a03a4fbd5243 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -608,6 +608,8 @@ public class StaticLayout extends Layout {
b.setLocales(paint.getTextLocales());
mLineCount = 0;
+ mEllipsized = false;
+ mMaxLineHeight = mMaximumVisibleLineCount < 1 ? 0 : DEFAULT_MAX_LINE_HEIGHT;
int v = 0;
boolean needMultiply = (spacingmult != 1 || spacingadd != 0);
@@ -1366,7 +1368,7 @@ public class StaticLayout extends Layout {
* The value is the same as getLineTop(maxLines) for ellipsized version where structurally no
* more than maxLines is contained.
*/
- private int mMaxLineHeight = -1;
+ private int mMaxLineHeight = DEFAULT_MAX_LINE_HEIGHT;
private static final int COLUMNS_NORMAL = 4;
private static final int COLUMNS_ELLIPSIZE = 6;
@@ -1394,6 +1396,8 @@ public class StaticLayout extends Layout {
private static final double EXTRA_ROUNDING = 0.5;
+ private static final int DEFAULT_MAX_LINE_HEIGHT = -1;
+
// This is used to return three arrays from a single JNI call when
// performing line breaking
/*package*/ static class LineBreaks {
diff --git a/core/tests/coretests/src/android/text/StaticLayoutTest.java b/core/tests/coretests/src/android/text/StaticLayoutTest.java
index fb60e38fcbf6..f1c4e56fc6c9 100644
--- a/core/tests/coretests/src/android/text/StaticLayoutTest.java
+++ b/core/tests/coretests/src/android/text/StaticLayoutTest.java
@@ -746,4 +746,15 @@ public class StaticLayoutTest {
assertEquals(numEnglishLines, numPrivateLocaleLines);
}
}
+
+ @Test
+ public void testGetHeight_zeroMaxLines() {
+ final String text = "a\nb";
+ final TextPaint paint = new TextPaint();
+ final StaticLayout layout = StaticLayout.Builder.obtain(text, 0, text.length(), paint,
+ Integer.MAX_VALUE).setMaxLines(0).build();
+
+ assertEquals(0, layout.getHeight(true));
+ assertEquals(2, layout.getLineCount());
+ }
}