From c0b9f318b68597ced8c8215fdca1c3ab0d4674f4 Mon Sep 17 00:00:00 2001 From: Ziqi Chen Date: Tue, 26 Nov 2024 05:57:29 +0000 Subject: Fix bug: AOSP keyboard is shown incompletely in Android V landscape mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: The AOSP keyboard uses `DisplayMetrics#widthPixels` to calculate the keyboard width and draw keys. Since Android 15’s edge-to-edge enforcement, this property now returns the full screen width, including window insets. This results in an incorrectly large key width calculation. Fix: Subtract window insets including system bar and display cutout from the width. Change-Id: Iea01ba749a48145cf5b484dc22a570874b1b7ca4 Test: use `m LatinIME` to install the AOSP keyboard and test landscape mode manually Bug: 377594757 --- .../com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/src/com/android/inputmethod') diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java index 29787acc9..1f13b4106 100644 --- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java +++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java @@ -155,7 +155,7 @@ public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase { final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) { final Context context = getContext(); final Resources res = context.getResources(); - final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res); + final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(context); final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res); final Builder builder = new Builder(context, editorInfo); builder.setKeyboardGeometry(keyboardWidth, keyboardHeight) -- cgit v1.2.3-83-g751a