From 2315bfc7c8df0f6d9fb627456f2a298f5580b52d Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 29 Aug 2011 21:12:36 +0900 Subject: [PATCH] Clean up some MiniKeyboard.Builder code Change-Id: I5832421cab3d496d4bb8a5e9902d0b5f4929fd0b --- .../inputmethod/keyboard/KeyboardView.java | 15 ++++++--------- .../inputmethod/keyboard/MiniKeyboard.java | 16 ++++++---------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index bc021a690..dfc893db1 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -681,15 +681,6 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } } - // 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) { @@ -733,6 +724,12 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { 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 17c253963..8f4791630 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java @@ -236,8 +236,7 @@ public class MiniKeyboard extends Keyboard { 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 @@ public class MiniKeyboard extends Keyboard { 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