Merge "Show all KCMs if IME doesn't provide language tag information" into udc-dev am: d2ca40f78d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22799639

Change-Id: Ifb865978fe9853695c9acfebe42d26a23c35688d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Vaibhav Devmurari
2023-04-24 11:49:38 +00:00
committed by Automerger Merge Worker
2 changed files with 25 additions and 1 deletions

View File

@@ -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;

View File

@@ -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")
)
)
}
}