Add isIconDefined predicate to Keyboard_Case attribute
Bug: 14259323 Change-Id: I9450a5125b1809b9fada6ee6e6b253cabfa2e2b4main
parent
61ddac28de
commit
1c8e069d3c
|
@ -431,6 +431,7 @@
|
|||
<!-- This should be aligned with KeyboardId.IME_ACTION_* -->
|
||||
<enum name="actionCustomLabel" value="0x100" />
|
||||
</attr>
|
||||
<attr name="isIconDefined" format="string" />
|
||||
<attr name="localeCode" format="string" />
|
||||
<attr name="languageCode" format="string" />
|
||||
<attr name="countryCode" format="string" />
|
||||
|
|
|
@ -664,6 +664,8 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
|||
R.styleable.Keyboard_Case_isMultiLine, id.isMultiLine());
|
||||
final boolean imeActionMatched = matchInteger(caseAttr,
|
||||
R.styleable.Keyboard_Case_imeAction, id.imeAction());
|
||||
final boolean isIconDefinedMatched = isIconDefined(caseAttr,
|
||||
R.styleable.Keyboard_Case_isIconDefined, mParams.mIconsSet);
|
||||
final boolean localeCodeMatched = matchString(caseAttr,
|
||||
R.styleable.Keyboard_Case_localeCode, id.mLocale.toString());
|
||||
final boolean languageCodeMatched = matchString(caseAttr,
|
||||
|
@ -675,10 +677,11 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
|||
&& passwordInputMatched && clobberSettingsKeyMatched
|
||||
&& supportsSwitchingToShortcutImeMatched && hasShortcutKeyMatched
|
||||
&& languageSwitchKeyEnabledMatched && isMultiLineMatched && imeActionMatched
|
||||
&& localeCodeMatched && languageCodeMatched && countryCodeMatched;
|
||||
&& isIconDefinedMatched && localeCodeMatched && languageCodeMatched
|
||||
&& countryCodeMatched;
|
||||
|
||||
if (DEBUG) {
|
||||
startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
|
||||
startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
|
||||
textAttr(caseAttr.getString(
|
||||
R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"),
|
||||
textAttr(caseAttr.getString(
|
||||
|
@ -704,6 +707,8 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
|||
"languageSwitchKeyEnabled"),
|
||||
booleanAttr(caseAttr, R.styleable.Keyboard_Case_isMultiLine,
|
||||
"isMultiLine"),
|
||||
textAttr(caseAttr.getString(R.styleable.Keyboard_Case_isIconDefined),
|
||||
"isIconDefined"),
|
||||
textAttr(caseAttr.getString(R.styleable.Keyboard_Case_localeCode),
|
||||
"localeCode"),
|
||||
textAttr(caseAttr.getString(R.styleable.Keyboard_Case_languageCode),
|
||||
|
@ -755,6 +760,16 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
|||
return false;
|
||||
}
|
||||
|
||||
private static boolean isIconDefined(final TypedArray a, final int index,
|
||||
final KeyboardIconsSet iconsSet) {
|
||||
if (!a.hasValue(index)) {
|
||||
return true;
|
||||
}
|
||||
final String iconName = a.getString(index);
|
||||
final int iconId = KeyboardIconsSet.getIconId(iconName);
|
||||
return iconsSet.getIconDrawable(iconId) != null;
|
||||
}
|
||||
|
||||
private boolean parseDefault(final XmlPullParser parser, final KeyboardRow row,
|
||||
final boolean skip) throws XmlPullParserException, IOException {
|
||||
if (DEBUG) startTag("<%s>", TAG_DEFAULT);
|
||||
|
|
Loading…
Reference in New Issue