diff options
| author | 2023-04-24 11:02:08 +0000 | |
|---|---|---|
| committer | 2023-04-24 11:02:08 +0000 | |
| commit | d2ca40f78dccbaaf007eb62fda67bf49e7fd6a24 (patch) | |
| tree | d669fb5ba6201730170b0ada4de68c51e073fc79 | |
| parent | ec725e14e8c5bbe66e6ad2a2cb7ff6b617abf7fb (diff) | |
| parent | 81f10425e6b1978444a789120f33e333afefb887 (diff) | |
Merge "Show all KCMs if IME doesn't provide language tag information" into udc-dev
| -rw-r--r-- | services/core/java/com/android/server/input/KeyboardLayoutManager.java | 2 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/input/KeyboardLayoutManager.java b/services/core/java/com/android/server/input/KeyboardLayoutManager.java index b4c12a400f96..d8716b328230 100644 --- a/services/core/java/com/android/server/input/KeyboardLayoutManager.java +++ b/services/core/java/com/android/server/input/KeyboardLayoutManager.java @@ -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; diff --git a/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt b/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt index ea3f3bca32ff..d0d28c3f7ec0 100644 --- a/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt +++ b/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt @@ -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") + ) + ) } } |