From 70f660f2d6220b10ddb5e32d665c38e30f0ab35c Mon Sep 17 00:00:00 2001 From: Siyamed Sinir Date: Tue, 29 Mar 2016 11:56:53 -0700 Subject: [PATCH] Reset FontMetrics at each new measurement in BoringLayout Reset FontMetrics object used in BoringLayout.isBoring to get updated and correct FontMetrics as a result of measurement. Bug: 26704088 Change-Id: If77b0edba8dc4b5b1738a802c5f49e112e47b4f2 --- core/java/android/text/BoringLayout.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/java/android/text/BoringLayout.java b/core/java/android/text/BoringLayout.java index a1bc2d107f3f..328fe99a7f93 100644 --- a/core/java/android/text/BoringLayout.java +++ b/core/java/android/text/BoringLayout.java @@ -300,6 +300,8 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback Metrics fm = metrics; if (fm == null) { fm = new Metrics(); + } else { + fm.reset(); } TextLine line = TextLine.obtain(); @@ -414,8 +416,6 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback mEllipsizedCount = end - start; } - private static final char FIRST_RIGHT_TO_LEFT = '\u0590'; - private String mDirect; private Paint mPaint; @@ -430,5 +430,14 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback @Override public String toString() { return super.toString() + " width=" + width; } + + private void reset() { + top = 0; + bottom = 0; + ascent = 0; + descent = 0; + width = 0; + leading = 0; + } } } -- 2.11.0