Merge "Show all KCMs if IME doesn't provide language tag information" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d2ca40f78d
@@ -1313,7 +1313,7 @@ final class KeyboardLayoutManager implements InputManager.InputDeviceListener {
|
||||
private static boolean isLayoutCompatibleWithLanguageTag(KeyboardLayout layout,
|
||||
@NonNull String languageTag) {
|
||||
LocaleList layoutLocales = layout.getLocales();
|
||||
if (layoutLocales.isEmpty()) {
|
||||
if (layoutLocales.isEmpty() || TextUtils.isEmpty(languageTag)) {
|
||||
// KCM file doesn't have an associated language tag. This can be from
|
||||
// a 3rd party app so need to include it as a potential layout.
|
||||
return true;
|
||||
|
||||
@@ -633,6 +633,30 @@ class KeyboardLayoutManagerTests {
|
||||
0,
|
||||
keyboardLayouts.size
|
||||
)
|
||||
|
||||
// If IME doesn't have a corresponding language tag, then should show all available
|
||||
// layouts no matter the script code.
|
||||
keyboardLayouts =
|
||||
keyboardLayoutManager.getKeyboardLayoutListForInputDevice(
|
||||
keyboardDevice.identifier, USER_ID, imeInfo, null
|
||||
)
|
||||
assertNotEquals(
|
||||
"New UI: getKeyboardLayoutListForInputDevice API should return all layouts if" +
|
||||
"language tag or subtype not provided",
|
||||
0,
|
||||
keyboardLayouts.size
|
||||
)
|
||||
assertTrue("New UI: getKeyboardLayoutListForInputDevice API should contain Latin " +
|
||||
"layouts if language tag or subtype not provided",
|
||||
containsLayout(keyboardLayouts, ENGLISH_US_LAYOUT_DESCRIPTOR)
|
||||
)
|
||||
assertTrue("New UI: getKeyboardLayoutListForInputDevice API should contain Cyrillic " +
|
||||
"layouts if language tag or subtype not provided",
|
||||
containsLayout(
|
||||
keyboardLayouts,
|
||||
createLayoutDescriptor("keyboard_layout_russian")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user