diff options
author | 2012-04-11 12:34:30 +0900 | |
---|---|---|
committer | 2012-04-11 15:53:38 +0900 | |
commit | ab0d0d8a021a9b0f179281ac9e18604ad331cc43 (patch) | |
tree | 117b456c421509d8780e1b844608be48551b2901 /java | |
parent | 10f18f5fb7b601f7778d179b9c30b1e781c1efc2 (diff) | |
download | latinime-ab0d0d8a021a9b0f179281ac9e18604ad331cc43.tar.gz latinime-ab0d0d8a021a9b0f179281ac9e18604ad331cc43.tar.xz latinime-ab0d0d8a021a9b0f179281ac9e18604ad331cc43.zip |
Add followKeyLabelRatio flag for keyLabelFlags of Key attribute
This change renames largeLetter flag to followKeyLargeLetterRatio as
well.
Change-Id: Ida777aac57e4d885fa051654fe863f493f8e946a
Diffstat (limited to 'java')
-rw-r--r-- | java/res/values/attrs.xml | 7 | ||||
-rw-r--r-- | java/res/xml/key_styles_enter.xml | 2 | ||||
-rw-r--r-- | java/res/xml/key_styles_number.xml | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Key.java | 33 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/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 @@ <flag name="alignLeft" value="0x01" /> <flag name="alignRight" value="0x02" /> <flag name="alignLeftOfCenter" value="0x08" /> - <flag name="largeLetter" value="0x10" /> - <flag name="fontNormal" value="0x20" /> - <flag name="fontMonoSpace" value="0x40" /> + <flag name="fontNormal" value="0x10" /> + <flag name="fontMonoSpace" value="0x20" /> + <flag name="followKeyLargeLetterRatio" value="0x40" /> <flag name="followKeyLetterRatio" value="0x80" /> + <flag name="followKeyLabelRatio" value="0xC0" /> <flag name="followKeyHintLabelRatio" value="0x100" /> <flag name="hasPopupHint" value="0x200" /> <flag name="hasShiftedLetterHint" value="0x400" /> 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" /> <key-style latin:styleName="numKeyStyle" - latin:keyLabelFlags="largeLetter|followKeyLetterRatio" + latin:keyLabelFlags="followKeyLargeLetterRatio" latin:parentStyle="numKeyBaseStyle" /> <key-style latin:styleName="numModeKeyStyle" @@ -34,7 +34,7 @@ latin:parentStyle="numKeyBaseStyle" /> <key-style latin:styleName="numFunctionalKeyStyle" - latin:keyLabelFlags="largeLetter|followKeyLetterRatio" + latin:keyLabelFlags="followKeyLargeLetterRatio" latin:backgroundType="functional" latin:parentStyle="numKeyBaseStyle" /> <key-style diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 254d2d618..fa7ec5cbf 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -60,10 +60,12 @@ public class Key { private static final int LABEL_FLAGS_ALIGN_LEFT = 0x01; private static final int LABEL_FLAGS_ALIGN_RIGHT = 0x02; private static final int LABEL_FLAGS_ALIGN_LEFT_OF_CENTER = 0x08; - private static final int LABEL_FLAGS_LARGE_LETTER = 0x10; - private static final int LABEL_FLAGS_FONT_NORMAL = 0x20; - private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x40; - public static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80; + private static final int LABEL_FLAGS_FONT_NORMAL = 0x10; + private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x20; + private static final int LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK = 0x1C0; + private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO = 0x40; + private static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80; + private static final int LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO = 0xC0; private static final int LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO = 0x100; private static final int LABEL_FLAGS_HAS_POPUP_HINT = 0x200; private static final int LABEL_FLAGS_HAS_SHIFTED_LETTER_HINT = 0x400; @@ -498,16 +500,17 @@ public class Key { } public int selectTextSize(int letter, int largeLetter, int label, int hintLabel) { - if (StringUtils.codePointCount(mLabel) > 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]; |