diff options
author | 2014-02-06 00:41:14 -0800 | |
---|---|---|
committer | 2014-02-06 00:41:14 -0800 | |
commit | 0cd292f20b19565274f4b5011ae422a129f3af32 (patch) | |
tree | b121bdce0542bcd3ed8e13b596c4be4d68cfc402 /java/src/com/android/inputmethod | |
parent | cca59581cea7a9c271461bc9b512858c2c257d78 (diff) | |
parent | a9b67135bd685bfdc9cbb928be24d2114d64a57a (diff) | |
download | latinime-0cd292f20b19565274f4b5011ae422a129f3af32.tar.gz latinime-0cd292f20b19565274f4b5011ae422a129f3af32.tar.xz latinime-0cd292f20b19565274f4b5011ae422a129f3af32.zip |
am a9b67135: Merge "Parse keyLabel for icon, code, and outputText as well"
* commit 'a9b67135bd685bfdc9cbb928be24d2114d64a57a':
Parse keyLabel for icon, code, and outputText as well
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Key.java | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index f7eec6b43..9715557c7 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -267,12 +267,6 @@ public class Key implements Comparable<Key> { R.styleable.Keyboard_Key_visualInsetsLeft, baseWidth, baseWidth, 0)); final int visualInsetsRight = Math.round(keyAttr.getFraction( R.styleable.Keyboard_Key_visualInsetsRight, baseWidth, baseWidth, 0)); - mIconId = KeySpecParser.getIconId(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyIcon)); - final int disabledIconId = KeySpecParser.getIconId(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyIconDisabled)); - final int previewIconId = KeySpecParser.getIconId(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyIconPreview)); mLabelFlags = style.getFlags(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags) | row.getDefaultKeyLabelFlags(); @@ -321,8 +315,21 @@ public class Key implements Comparable<Key> { } mActionFlags = actionFlags; - final int code = KeySpecParser.parseCode(style.getString(keyAttr, + final String keySpec = style.getString(keyAttr, R.styleable.Keyboard_Key_keyLabel); + + final int iconIdInAttr = KeySpecParser.getIconId(style.getString(keyAttr, + R.styleable.Keyboard_Key_keyIcon)); + mIconId = (iconIdInAttr != ICON_UNDEFINED) ? iconIdInAttr + : KeySpecParser.getIconId(keySpec); + final int disabledIconId = KeySpecParser.getIconId(style.getString(keyAttr, + R.styleable.Keyboard_Key_keyIconDisabled)); + final int previewIconId = KeySpecParser.getIconId(style.getString(keyAttr, + R.styleable.Keyboard_Key_keyIconPreview)); + + final int codeInAttr = KeySpecParser.parseCode(style.getString(keyAttr, R.styleable.Keyboard_Key_code), params.mCodesSet, CODE_UNSPECIFIED); + final int code = (codeInAttr != CODE_UNSPECIFIED) ? codeInAttr + : KeySpecParser.getCode(keySpec, params.mCodesSet); if ((mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0) { mLabel = params.mId.mCustomActionLabel; } else if (code >= Character.MIN_SUPPLEMENTARY_CODE_POINT) { @@ -331,8 +338,8 @@ public class Key implements Comparable<Key> { // code point nor as a surrogate pair. mLabel = new StringBuilder().appendCodePoint(code).toString(); } else { - mLabel = StringUtils.toUpperCaseOfStringForLocale(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyLabel), needsToUpperCase, locale); + mLabel = StringUtils.toUpperCaseOfStringForLocale( + KeySpecParser.getLabel(keySpec), needsToUpperCase, locale); } if ((mLabelFlags & LABEL_FLAGS_DISABLE_HINT_LABEL) != 0) { mHintLabel = null; @@ -340,8 +347,12 @@ public class Key implements Comparable<Key> { mHintLabel = StringUtils.toUpperCaseOfStringForLocale(style.getString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel), needsToUpperCase, locale); } - String outputText = StringUtils.toUpperCaseOfStringForLocale(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyOutputText), needsToUpperCase, locale); + final String outputTextInAttr = style.getString( + keyAttr, R.styleable.Keyboard_Key_keyOutputText); + final String rawOutputText = (outputTextInAttr != null) ? outputTextInAttr + : KeySpecParser.getOutputText(keySpec); + String outputText = StringUtils.toUpperCaseOfStringForLocale( + rawOutputText, needsToUpperCase, locale); // Choose the first letter of the label as primary code if not specified. if (code == CODE_UNSPECIFIED && TextUtils.isEmpty(outputText) && !TextUtils.isEmpty(mLabel)) { |