Loading java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder( mThemeContext, editorInfo); final Resources res = mThemeContext.getResources(); final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res); final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(mThemeContext); final int keyboardHeight = ResourceUtils.getKeyboardHeight(res, settingsValues); builder.setKeyboardGeometry(keyboardWidth, keyboardHeight); builder.setSubtype(mRichImm.getCurrentSubtype()); Loading java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java +4 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.inputmethod.keyboard.emoji; import android.content.Context; import android.content.res.Resources; import androidx.viewpager.widget.ViewPager; import android.view.View; Loading @@ -37,9 +38,10 @@ final class EmojiLayoutParams { private final int mBottomPadding; private final int mTopPadding; public EmojiLayoutParams(final Resources res) { public EmojiLayoutParams(final Context context) { final Resources res = context.getResources(); final int defaultKeyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res); final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res); final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(context); mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo, defaultKeyboardHeight, defaultKeyboardHeight); mBottomPadding = (int) res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, Loading java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java +3 −3 Original line number Diff line number Diff line Loading @@ -109,9 +109,9 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder( context, null /* editorInfo */); final Resources res = context.getResources(); mEmojiLayoutParams = new EmojiLayoutParams(res); mEmojiLayoutParams = new EmojiLayoutParams(context); builder.setSubtype(RichInputMethodSubtype.getEmojiSubtype()); builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(res), builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(context), mEmojiLayoutParams.mEmojiKeyboardHeight); final KeyboardLayoutSet layoutSet = builder.build(); final TypedArray emojiPalettesViewAttr = context.obtainStyledAttributes(attrs, Loading @@ -137,7 +137,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange super.onMeasure(widthMeasureSpec, heightMeasureSpec); final Resources res = getContext().getResources(); // The main keyboard expands to the entire this {@link KeyboardView}. final int width = ResourceUtils.getDefaultKeyboardWidth(res) final int width = ResourceUtils.getDefaultKeyboardWidth(getContext()) + getPaddingLeft() + getPaddingRight(); final int height = ResourceUtils.getDefaultKeyboardHeight(res) + res.getDimensionPixelSize(R.dimen.config_suggestions_strip_height) Loading java/src/com/android/inputmethod/latin/utils/ResourceUtils.java +19 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading Loading
java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder( mThemeContext, editorInfo); final Resources res = mThemeContext.getResources(); final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res); final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(mThemeContext); final int keyboardHeight = ResourceUtils.getKeyboardHeight(res, settingsValues); builder.setKeyboardGeometry(keyboardWidth, keyboardHeight); builder.setSubtype(mRichImm.getCurrentSubtype()); Loading
java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java +4 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.inputmethod.keyboard.emoji; import android.content.Context; import android.content.res.Resources; import androidx.viewpager.widget.ViewPager; import android.view.View; Loading @@ -37,9 +38,10 @@ final class EmojiLayoutParams { private final int mBottomPadding; private final int mTopPadding; public EmojiLayoutParams(final Resources res) { public EmojiLayoutParams(final Context context) { final Resources res = context.getResources(); final int defaultKeyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res); final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res); final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(context); mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo, defaultKeyboardHeight, defaultKeyboardHeight); mBottomPadding = (int) res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, Loading
java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java +3 −3 Original line number Diff line number Diff line Loading @@ -109,9 +109,9 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder( context, null /* editorInfo */); final Resources res = context.getResources(); mEmojiLayoutParams = new EmojiLayoutParams(res); mEmojiLayoutParams = new EmojiLayoutParams(context); builder.setSubtype(RichInputMethodSubtype.getEmojiSubtype()); builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(res), builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(context), mEmojiLayoutParams.mEmojiKeyboardHeight); final KeyboardLayoutSet layoutSet = builder.build(); final TypedArray emojiPalettesViewAttr = context.obtainStyledAttributes(attrs, Loading @@ -137,7 +137,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange super.onMeasure(widthMeasureSpec, heightMeasureSpec); final Resources res = getContext().getResources(); // The main keyboard expands to the entire this {@link KeyboardView}. final int width = ResourceUtils.getDefaultKeyboardWidth(res) final int width = ResourceUtils.getDefaultKeyboardWidth(getContext()) + getPaddingLeft() + getPaddingRight(); final int height = ResourceUtils.getDefaultKeyboardHeight(res) + res.getDimensionPixelSize(R.dimen.config_suggestions_strip_height) Loading
java/src/com/android/inputmethod/latin/utils/ResourceUtils.java +19 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading
tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading