Merge "Add keyLetterSize and keyLabelSize as KeyboardView attribute"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 3225944..d6d0f5c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -696,15 +696,6 @@
         }
     }
 
-    // This method is currently being used only by MiniKeyboardBuilder
-    public int getDefaultLabelSizeAndSetPaint(Paint paint) {
-        // For characters, use large font. For labels like "Done", use small font.
-        final int labelSize = mKeyDrawParams.mKeyLabelSize;
-        paint.setTextSize(labelSize);
-        paint.setTypeface(mKeyDrawParams.mKeyTextStyle);
-        return labelSize;
-    }
-
     private static final Rect sTextBounds = new Rect();
 
     private static float getCharHeight(Paint paint) {
@@ -748,6 +739,12 @@
         return sTextBounds.width();
     }
 
+    public float getDefaultLabelWidth(CharSequence label, Paint paint) {
+        paint.setTextSize(mKeyDrawParams.mKeyLabelSize);
+        paint.setTypeface(mKeyDrawParams.mKeyTextStyle);
+        return getLabelWidth(label, paint);
+    }
+
     private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width,
             int height) {
         canvas.translate(x, y);
diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
index 17c2539..8f47916 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
@@ -236,8 +236,7 @@
         private static int getMaxKeyWidth(KeyboardView view, CharSequence[] popupCharacters,
                 int minKeyWidth) {
             Paint paint = null;
-            Rect bounds = null;
-            int maxWidth = 0;
+            int maxWidth = minKeyWidth;
             for (CharSequence popupSpec : popupCharacters) {
                 final CharSequence label = PopupCharactersParser.getLabel(popupSpec.toString());
                 // If the label is single letter, minKeyWidth is enough to hold
@@ -247,18 +246,15 @@
                         paint = new Paint();
                         paint.setAntiAlias(true);
                     }
-                    final int labelSize = view.getDefaultLabelSizeAndSetPaint(paint);
-                    paint.setTextSize(labelSize);
-                    if (bounds == null)
-                        bounds = new Rect();
-                    paint.getTextBounds(label.toString(), 0, label.length(), bounds);
-                    if (maxWidth < bounds.width())
-                        maxWidth = bounds.width();
+                    final int width = (int)view.getDefaultLabelWidth(label, paint);
+                    if (maxWidth < width) {
+                        maxWidth = width;
+                    }
                 }
             }
             final int horizontalPadding = (int) view.getContext().getResources()
                     .getDimension(R.dimen.mini_keyboard_key_horizontal_padding);
-            return Math.max(minKeyWidth, maxWidth + horizontalPadding);
+            return maxWidth + horizontalPadding;
         }
 
         @Override