summaryrefslogtreecommitdiff
path: root/core/java/android/widget/TextView.java
diff options
context:
space:
mode:
authorAndrei Stingaceanu <stg@google.com>2017-04-05 16:51:00 +0100
committerAndrei Stingaceanu <stg@google.com>2017-04-10 09:56:32 +0000
commit549482bfcb00186d3f49e61eca4b60283e3b401b (patch)
treead2e325d06859ca4d5630328b5e264c8b82574a7 /core/java/android/widget/TextView.java
parenteca0d421d10e3cdaec150ef736a3fa3dad652bcb (diff)
AutoSize TextView - fix measurements
The BoringLayout measurements for auto-size are incorrect. Removed those and kept the StaticLayout measurements. Bug: 36940118 Test: cts-tradefed run cts-dev -m CtsWidgetTestCases -t\ android.widget.cts.TextViewTest Change-Id: I772ade08ed26efac05ca56cb7df8cfec0327633b
Diffstat (limited to 'core/java/android/widget/TextView.java')
-rw-r--r--core/java/android/widget/TextView.java50
1 files changed, 22 insertions, 28 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 58da92f6bd19..fcab7035e60f 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -8148,35 +8148,29 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
mTempTextPaint.set(getPaint());
mTempTextPaint.setTextSize(suggestedSizeInPx);
- if ((mLayout instanceof BoringLayout) && BoringLayout.isBoring(
- text, mTempTextPaint, getTextDirectionHeuristic(), mBoring) != null) {
- return mTempTextPaint.getFontSpacing() <= availableSpace.bottom
- && mTempTextPaint.measureText(text, 0, text.length()) <= availableSpace.right;
- } else {
- final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain(
- text, 0, text.length(), mTempTextPaint,
- getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight());
-
- layoutBuilder.setAlignment(getLayoutAlignment())
- .setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
- .setIncludePad(getIncludeFontPadding())
- .setBreakStrategy(getBreakStrategy())
- .setHyphenationFrequency(getHyphenationFrequency())
- .setJustificationMode(getJustificationMode())
- .setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE)
- .setTextDirection(getTextDirectionHeuristic());
-
- final StaticLayout layout = layoutBuilder.build();
-
- // Lines overflow.
- if (maxLines != -1 && layout.getLineCount() > maxLines) {
- return false;
- }
+ final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain(
+ text, 0, text.length(), mTempTextPaint,
+ getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight());
+
+ layoutBuilder.setAlignment(getLayoutAlignment())
+ .setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
+ .setIncludePad(getIncludeFontPadding())
+ .setBreakStrategy(getBreakStrategy())
+ .setHyphenationFrequency(getHyphenationFrequency())
+ .setJustificationMode(getJustificationMode())
+ .setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE)
+ .setTextDirection(getTextDirectionHeuristic());
+
+ final StaticLayout layout = layoutBuilder.build();
+
+ // Lines overflow.
+ if (maxLines != -1 && layout.getLineCount() > maxLines) {
+ return false;
+ }
- // Height overflow.
- if (layout.getHeight() > availableSpace.bottom) {
- return false;
- }
+ // Height overflow.
+ if (layout.getHeight() > availableSpace.bottom) {
+ return false;
}
return true;