Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9b67135 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Parse keyLabel for icon, code, and outputText as well"

parents 0df46273 6193217f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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. -->
@@ -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. -->
@@ -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 -->
+22 −11
Original line number Diff line number Diff line
@@ -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)) {