Loading java/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,7 @@ </declare-styleable> <declare-styleable name="Keyboard_Key"> <!-- TODO: Remove code attribute and consolidate with keySpec. --> <!-- The unicode value that this key outputs. Code value represented in hexadecimal prefixed with "0x" or code value reference using "!code/<code_name>" notation. --> Loading Loading @@ -275,8 +276,10 @@ <flag name="altCodeWhileTyping" value="0x04" /> <flag name="enableLongPress" value="0x08" /> </attr> <!-- TODO: Remove keyOutputText attribute and consolidate with keySpec. --> <!-- The string of characters to output when this key is pressed. --> <attr name="keyOutputText" format="string" /> <!-- TODO: Rename keyLabel to keySpec. --> <!-- The label to display on the key. --> <attr name="keyLabel" format="string" /> <!-- The hint label to display on the key in conjunction with the label. --> Loading Loading @@ -318,6 +321,7 @@ <!-- If true, disable additionalMoreKeys. --> <flag name="disableAdditionalMoreKeys" value="0x80000000" /> </attr> <!-- TODO: Remove keyIcon attribute and consolidate with keySpec. --> <!-- The icon to display on the key instead of the label. --> <attr name="keyIcon" format="string" /> <!-- The icon for disabled key --> Loading java/src/com/android/inputmethod/keyboard/Key.java +22 −11 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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) { Loading @@ -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; Loading @@ -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)) { Loading Loading
java/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,7 @@ </declare-styleable> <declare-styleable name="Keyboard_Key"> <!-- TODO: Remove code attribute and consolidate with keySpec. --> <!-- The unicode value that this key outputs. Code value represented in hexadecimal prefixed with "0x" or code value reference using "!code/<code_name>" notation. --> Loading Loading @@ -275,8 +276,10 @@ <flag name="altCodeWhileTyping" value="0x04" /> <flag name="enableLongPress" value="0x08" /> </attr> <!-- TODO: Remove keyOutputText attribute and consolidate with keySpec. --> <!-- The string of characters to output when this key is pressed. --> <attr name="keyOutputText" format="string" /> <!-- TODO: Rename keyLabel to keySpec. --> <!-- The label to display on the key. --> <attr name="keyLabel" format="string" /> <!-- The hint label to display on the key in conjunction with the label. --> Loading Loading @@ -318,6 +321,7 @@ <!-- If true, disable additionalMoreKeys. --> <flag name="disableAdditionalMoreKeys" value="0x80000000" /> </attr> <!-- TODO: Remove keyIcon attribute and consolidate with keySpec. --> <!-- The icon to display on the key instead of the label. --> <attr name="keyIcon" format="string" /> <!-- The icon for disabled key --> Loading
java/src/com/android/inputmethod/keyboard/Key.java +22 −11 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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) { Loading @@ -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; Loading @@ -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)) { Loading