diff options
author | 2024-12-03 03:13:05 +0000 | |
---|---|---|
committer | 2024-12-03 03:13:05 +0000 | |
commit | e9554b09a53f17104d5233cd7fdb2435299f41f8 (patch) | |
tree | 7e62f0c4f78415a888c8144398990eef64e9b95b /java/src/com/android/inputmethod/latin/utils/ResourceUtils.java | |
parent | 5e885274fc59914d3fde21130904346704b0fe90 (diff) | |
parent | 21614e29177393e9de5ea7eadc2ea1f48235b3eb (diff) | |
download | latinime-e9554b09a53f17104d5233cd7fdb2435299f41f8.tar.gz latinime-e9554b09a53f17104d5233cd7fdb2435299f41f8.tar.xz latinime-e9554b09a53f17104d5233cd7fdb2435299f41f8.zip |
Merge "Fix bug: AOSP keyboard is shown incompletely in Android V landscape mode" into main am: 21614e2917
Original change: https://android-review.googlesource.com/c/platform/packages/inputmethods/LatinIME/+/3377629
Change-Id: I7f9a1c388dbfb17f54192b5e2b8c7d3d0fce5b9e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils/ResourceUtils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/ResourceUtils.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java index cc0d470df..f799be750 100644 --- a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java @@ -16,13 +16,18 @@ package com.android.inputmethod.latin.utils; +import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.Insets; import android.os.Build; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; +import android.view.WindowInsets; +import android.view.WindowManager; +import android.view.WindowMetrics; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.R; @@ -182,8 +187,20 @@ public final class ResourceUtils { return matchedAll; } - public static int getDefaultKeyboardWidth(final Resources res) { - final DisplayMetrics dm = res.getDisplayMetrics(); + public static int getDefaultKeyboardWidth(final Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + // Since Android 15’s edge-to-edge enforcement, window insets should be considered. + final WindowManager wm = context.getSystemService(WindowManager.class); + final WindowMetrics windowMetrics = wm.getCurrentWindowMetrics(); + final Insets insets = + windowMetrics + .getWindowInsets() + .getInsetsIgnoringVisibility( + WindowInsets.Type.systemBars() + | WindowInsets.Type.displayCutout()); + return windowMetrics.getBounds().width() - insets.left - insets.right; + } + final DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm.widthPixels; } |