Pass layout info in native callback for quicker layout setup.
Passing language tag and layout type to getKeyboardLayoutOverlay()
callback allows us to setup keyboard layout before device creation
is complete. Hence when we get onInputDeviceAdded() is callback, the
layout is already set up.
Test: atest VirtualKeyboardLayoutTest
Bug: 271905768
Change-Id: I46a6e4b0f512beb4a560374feda4104ff32d27cc
diff --git a/services/inputflinger/include/InputReaderBase.h b/services/inputflinger/include/InputReaderBase.h
index a93a2ea..ed493de 100644
--- a/services/inputflinger/include/InputReaderBase.h
+++ b/services/inputflinger/include/InputReaderBase.h
@@ -437,7 +437,8 @@
/* Gets the keyboard layout for a particular input device. */
virtual std::shared_ptr<KeyCharacterMap> getKeyboardLayoutOverlay(
- const InputDeviceIdentifier& identifier) = 0;
+ const InputDeviceIdentifier& identifier,
+ const std::optional<KeyboardLayoutInfo> keyboardLayoutInfo) = 0;
/* Gets a user-supplied alias for a particular input device, or an empty string if none. */
virtual std::string getDeviceAlias(const InputDeviceIdentifier& identifier) = 0;