Loading services/core/java/com/android/server/input/KeyboardLayoutManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt +24 −0 Original line number Diff line number Diff line Loading @@ -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") ) ) } } Loading Loading
services/core/java/com/android/server/input/KeyboardLayoutManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt +24 −0 Original line number Diff line number Diff line Loading @@ -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") ) ) } } Loading