Fix KeyboardLayoutTest when new_settings flag is on

getKeyboardLayoutsForInputDevice() method doesn't work in new
settings scenario, hence breaking the KeyboardLayoutTest. Modify
the CTS test to work with or without the new setting API.

Test: atest KeyboardLayoutTest
Bug: 270125316
Change-Id: I8b56153f804a4486b1f1528c12ce75fd2b98290b
This commit is contained in:
Vaibhav Devmurari
2023-02-21 18:20:43 +00:00
parent 1dd100693a
commit 69ec4e4e07
2 changed files with 12 additions and 7 deletions

View File

@@ -283,7 +283,8 @@ final class KeyboardLayoutManager implements InputManager.InputDeviceListener {
public KeyboardLayout[] getKeyboardLayoutsForInputDevice(
final InputDeviceIdentifier identifier) {
if (useNewSettingsUi()) {
return new KeyboardLayout[0];
// Provide all supported keyboard layouts since Ime info is not provided
return getKeyboardLayouts();
}
final String[] enabledLayoutDescriptors =
getEnabledKeyboardLayoutsForInputDevice(identifier);

View File

@@ -256,12 +256,16 @@ class KeyboardLayoutManagerTests {
@Test
fun testNewUi_getKeyboardLayoutsForInputDevice() {
NewSettingsApiFlag(true).use {
val keyboardLayouts =
keyboardLayoutManager.getKeyboardLayoutsForInputDevice(keyboardDevice.identifier)
assertEquals(
"New UI: getKeyboardLayoutsForInputDevice API should always return empty array",
0,
keyboardLayouts.size
val keyboardLayouts = keyboardLayoutManager.keyboardLayouts
assertNotEquals(
"New UI: getKeyboardLayoutsForInputDevice API should not return empty array",
0,
keyboardLayouts.size
)
assertTrue(
"New UI: getKeyboardLayoutsForInputDevice API should provide English(US) " +
"layout",
hasLayout(keyboardLayouts, ENGLISH_US_LAYOUT_DESCRIPTOR)
)
}
}