From 69ec4e4e078673f9ff0f135d8757ed3ff9c720ba Mon Sep 17 00:00:00 2001 From: Vaibhav Devmurari Date: Tue, 21 Feb 2023 18:20:43 +0000 Subject: [PATCH] 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 --- .../server/input/KeyboardLayoutManager.java | 3 ++- .../server/input/KeyboardLayoutManagerTests.kt | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/input/KeyboardLayoutManager.java b/services/core/java/com/android/server/input/KeyboardLayoutManager.java index e0253fc3d30cb..c1c8af2fd9e02 100644 --- a/services/core/java/com/android/server/input/KeyboardLayoutManager.java +++ b/services/core/java/com/android/server/input/KeyboardLayoutManager.java @@ -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); 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 b2bfd2bf720c5..b660926f13946 100644 --- a/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt +++ b/services/tests/servicestests/src/com/android/server/input/KeyboardLayoutManagerTests.kt @@ -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) ) } }