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

Commit ea6c2e33 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Add "languageCode" attribute to "case" tag in Keyboard XML

bug: 3451586
Change-Id: I08ca80e48648ba18543e9b8ca7362c06bb61a826
parent d9c52ba6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -182,6 +182,7 @@
            <flag name="actionDone" value="6" />
            <flag name="actionPrevious" value="7" />
        </attr>
        <attr name="languageCode" format="string" />
    </declare-styleable>

    <declare-styleable name="Keyboard_KeyStyle">
+12 −2
Original line number Diff line number Diff line
@@ -433,10 +433,13 @@ public class KeyboardParser {
            // this attribute with id.mImeOptions as integer value is enough for our purpose.
            final boolean imeActionMatched = matchInteger(a,
                    R.styleable.Keyboard_Case_imeAction, id.mImeAction);
            final boolean languageCodeMatched = matchString(a,
                    R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
            final boolean selected = modeMatched && settingsKeyMatched && voiceEnabledMatched
                    && voiceKeyMatched && colorSchemeMatched && imeActionMatched;
                    && voiceKeyMatched && colorSchemeMatched && imeActionMatched
                    && languageCodeMatched;

            if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s> %s", TAG_CASE,
            if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s%s> %s", TAG_CASE,
                    textAttr(KeyboardId.modeName(
                            a.getInt(R.styleable.Keyboard_Case_mode, -1)), "mode"),
                    textAttr(KeyboardId.colorSchemeName(
@@ -446,6 +449,7 @@ public class KeyboardParser {
                    booleanAttr(a, R.styleable.Keyboard_Case_hasVoiceKey, "hasVoiceKey"),
                    textAttr(KeyboardId.imeOptionsName(
                            a.getInt(R.styleable.Keyboard_Case_imeAction, -1)), "imeAction"),
                    textAttr(a.getString(R.styleable.Keyboard_Case_languageCode), "languageCode"),
                    Boolean.toString(selected)));

            return selected;
@@ -467,6 +471,12 @@ public class KeyboardParser {
        return !a.hasValue(index) || a.getBoolean(index, false) == value;
    }

    private static boolean matchString(TypedArray a, int index, String value) {
        // If <case> does not have "index" attribute, that means this <case> is wild-card for the
        // attribute.
        return !a.hasValue(index) || a.getString(index).equals(value);
    }

    private boolean parseDefault(XmlResourceParser parser, Row row, List<Key> keys)
            throws XmlPullParserException, IOException {
        if (DEBUG) Log.d(TAG, String.format("<%s>", TAG_DEFAULT));