aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-04-11 12:34:30 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-04-11 15:53:38 +0900
commitab0d0d8a021a9b0f179281ac9e18604ad331cc43 (patch)
tree117b456c421509d8780e1b844608be48551b2901 /java
parent10f18f5fb7b601f7778d179b9c30b1e781c1efc2 (diff)
downloadlatinime-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.xml7
-rw-r--r--java/res/xml/key_styles_enter.xml2
-rw-r--r--java/res/xml/key_styles_number.xml4
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java33
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java5
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];