summaryrefslogtreecommitdiffstats
path: root/core/java/android/text
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2011-09-29 12:44:16 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2011-09-29 12:44:16 -0700
commita130e5f59dc6b2117e4c1a8ffef54828e9ea44c7 (patch)
treee8bb0c98b72a6ce60020b962f0f918368a645df8 /core/java/android/text
parentd4ad7b49848371f71696ffd8bb12d19512926652 (diff)
downloadframeworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.zip
frameworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.tar.gz
frameworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.tar.bz2
Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)
- make DynamicLayout honor max lines - make StaticLayout.generate() take maxLines as a parameter instead of using the field mMaximumVisibleLineCount Change-Id: I9eafb1be4b8bb2aa881514955a6903f559cb6a1e
Diffstat (limited to 'core/java/android/text')
-rw-r--r--core/java/android/text/DynamicLayout.java10
-rw-r--r--core/java/android/text/StaticLayout.java10
2 files changed, 12 insertions, 8 deletions
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java
index f82c9c4..c3a2308 100644
--- a/core/java/android/text/DynamicLayout.java
+++ b/core/java/android/text/DynamicLayout.java
@@ -76,7 +76,7 @@ extends Layout
boolean includepad,
TextUtils.TruncateAt ellipsize, int ellipsizedWidth) {
this(base, display, paint, width, align, TextDirectionHeuristics.FIRSTSTRONG_LTR,
- spacingmult, spacingadd, includepad, ellipsize, ellipsizedWidth);
+ spacingmult, spacingadd, includepad, ellipsize, ellipsizedWidth, Integer.MAX_VALUE);
}
/**
@@ -93,7 +93,7 @@ extends Layout
int width, Alignment align, TextDirectionHeuristic textDir,
float spacingmult, float spacingadd,
boolean includepad,
- TextUtils.TruncateAt ellipsize, int ellipsizedWidth) {
+ TextUtils.TruncateAt ellipsize, int ellipsizedWidth, int maxLines) {
super((ellipsize == null)
? display
: (display instanceof Spanned)
@@ -135,6 +135,8 @@ extends Layout
mEllipsize = true;
}
+ mMaxLines = maxLines;
+
// Initial state is a single line with 0 characters (0 to 0),
// with top at 0 and bottom at whatever is natural, and
// undefined ellipsis.
@@ -283,7 +285,7 @@ extends Layout
reflowed.generate(text, where, where + after,
getPaint(), getWidth(), getAlignment(), getTextDirectionHeuristic(),
getSpacingMultiplier(), getSpacingAdd(),
- false, true, mEllipsizedWidth, mEllipsizeAt);
+ false, true, mEllipsizedWidth, mEllipsizeAt, mMaxLines);
int n = reflowed.getLineCount();
// If the new layout has a blank line at the end, but it is not
@@ -488,6 +490,8 @@ extends Layout
private int mTopPadding, mBottomPadding;
+ private int mMaxLines;
+
private static StaticLayout sStaticLayout = new StaticLayout(null);
private static final Object[] sLock = new Object[0];
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 583cbe6..7c27396 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -139,7 +139,7 @@ public class StaticLayout extends Layout {
generate(source, bufstart, bufend, paint, outerwidth, align, textDir,
spacingmult, spacingadd, includepad, includepad,
- ellipsizedWidth, ellipsize);
+ ellipsizedWidth, ellipsize, mMaximumVisibleLineCount);
mMeasured = MeasuredText.recycle(mMeasured);
mFontMetricsInt = null;
@@ -160,7 +160,7 @@ public class StaticLayout extends Layout {
Alignment align, TextDirectionHeuristic textDir,
float spacingmult, float spacingadd,
boolean includepad, boolean trackpad,
- float ellipsizedWidth, TextUtils.TruncateAt ellipsize) {
+ float ellipsizedWidth, TextUtils.TruncateAt ellipsize, int maxLines) {
mLineCount = 0;
int v = 0;
@@ -477,13 +477,13 @@ public class StaticLayout extends Layout {
width = restWidth;
}
}
- if (mLineCount >= mMaximumVisibleLineCount) {
+ if (mLineCount >= maxLines) {
break;
}
}
}
- if (paraEnd != here && mLineCount < mMaximumVisibleLineCount) {
+ if (paraEnd != here && mLineCount < maxLines) {
if ((fitTop | fitBottom | fitDescent | fitAscent) == 0) {
paint.getFontMetricsInt(fm);
@@ -514,7 +514,7 @@ public class StaticLayout extends Layout {
}
if ((bufEnd == bufStart || source.charAt(bufEnd - 1) == CHAR_NEW_LINE) &&
- mLineCount < mMaximumVisibleLineCount) {
+ mLineCount < maxLines) {
// Log.e("text", "output last " + bufEnd);
paint.getFontMetricsInt(fm);