From 76410f1eb316763018b7480d9cd8dc3684803576 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Fri, 13 Nov 2009 14:10:20 -0800 Subject: [PATCH] Properly implement Paint.breakText for layoutlib. BUG 2260400 Change-Id: I7082e366b65da0b5de2a6dbb547f66e05e0b78e0 --- .../bridge/src/android/graphics/Paint.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java index 86de56bfd7a1a..f3af133f96d85 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Paint.java +++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java @@ -950,7 +950,6 @@ public class Paint extends _Original_Paint { @Override public int breakText(String text, boolean measureForwards, float maxWidth, float[] measuredWidth) { - // NOTE: javadoc doesn't match. Just a guess. return breakText(text, 0 /* start */, text.length() /* end */, measureForwards, maxWidth, measuredWidth); @@ -975,7 +974,18 @@ public class Paint extends _Original_Paint { @Override public int breakText(CharSequence text, int start, int end, boolean measureForwards, float maxWidth, float[] measuredWidth) { - return super.breakText(text, start, end, measureForwards, maxWidth, measuredWidth); + char[] buf = new char[end - start]; + int result; + + TextUtils.getChars(text, start, end, buf, 0); + + if (measureForwards) { + result = breakText(buf, 0, end - start, maxWidth, measuredWidth); + } else { + result = breakText(buf, 0, -(end - start), maxWidth, measuredWidth); + } + + return result; } /**