Properly implement Paint.breakText for layoutlib.

BUG 2260400

Change-Id: I7082e366b65da0b5de2a6dbb547f66e05e0b78e0
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java
index 86de56b..f3af133 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java
@@ -950,7 +950,6 @@
     @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 @@
     @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;
     }
 
     /**