From ab0d0d8a021a9b0f179281ac9e18604ad331cc43 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Wed, 11 Apr 2012 12:34:30 +0900 Subject: [PATCH] Add followKeyLabelRatio flag for keyLabelFlags of Key attribute This change renames largeLetter flag to followKeyLargeLetterRatio as well. Change-Id: Ida777aac57e4d885fa051654fe863f493f8e946a --- java/res/values/attrs.xml | 7 ++-- java/res/xml/key_styles_enter.xml | 2 +- java/res/xml/key_styles_number.xml | 4 +-- .../com/android/inputmethod/keyboard/Key.java | 33 ++++++++++++------- .../keyboard/MoreKeysKeyboard.java | 5 +-- 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 573ec68b7..4ec184334 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -275,10 +275,11 @@ - - - + + + + diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml index 04bd80d9e..f4c7ad46b 100644 --- a/java/res/xml/key_styles_enter.xml +++ b/java/res/xml/key_styles_enter.xml @@ -94,7 +94,7 @@ latin:styleName="defaultEnterKeyStyle" latin:code="!code/key_enter" latin:keyIcon="iconReturnKey" - latin:keyLabelFlags="autoXScale|preserveCase" + latin:keyLabelFlags="autoXScale|preserveCase|followKeyLabelRatio" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" latin:parentStyle="navigateMoreKeysStyle" /> diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml index d796b92c1..16cfa8492 100644 --- a/java/res/xml/key_styles_number.xml +++ b/java/res/xml/key_styles_number.xml @@ -26,7 +26,7 @@ latin:keyActionFlags="noKeyPreview" /> 1 - && (mLabelFlags & (LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO - | LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO)) == 0) { - return label; - } else if ((mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO) != 0) { - return hintLabel; - } else if ((mLabelFlags & LABEL_FLAGS_LARGE_LETTER) != 0) { + switch (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK) { + case LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO: return largeLetter; - } else { + case LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO: return letter; + case LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO: + return label; + case LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO: + return hintLabel; + default: // No follow key ratio flag specified. + return StringUtils.codePointCount(mLabel) == 1 ? letter : label; } } @@ -563,6 +566,12 @@ public class Key { return (mMoreKeysColumnAndFlags & MORE_KEYS_FLAGS_HAS_LABELS) != 0; } + public int getMoreKeyLabelFlags() { + return hasLabelsInMoreKeys() + ? LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO + : LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO; + } + public boolean needsDividersInMoreKeys() { return (mMoreKeysColumnAndFlags & MORE_KEYS_FLAGS_NEEDS_DIVIDERS) != 0; } diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java index f8682d8ca..7154086e2 100644 --- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java @@ -332,10 +332,7 @@ public class MoreKeysKeyboard extends Keyboard { @Override public MoreKeysKeyboard build() { final MoreKeysKeyboardParams params = mParams; - // moreKeyFlags == 0 means that the rendered text size will be determined by its - // label's code point count. - final int moreKeyFlags = mParentKey.hasLabelsInMoreKeys() ? 0 - : Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO; + final int moreKeyFlags = mParentKey.getMoreKeyLabelFlags(); final MoreKeySpec[] moreKeys = mParentKey.mMoreKeys; for (int n = 0; n < moreKeys.length; n++) { final MoreKeySpec moreKeySpec = moreKeys[n];