diff --git a/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt b/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt index 1eada9c2..43a25e70 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt @@ -37,9 +37,11 @@ class ClipboardLayoutParams(ctx: Context) { defaultKeyboardWidth, defaultKeyboardWidth).toInt() } val bottomPadding = (res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, - defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale).toInt() + defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale + + ResourceUtils.getBottomPaddingAdjustment(ctx)).toInt() + val topPadding = res.getFraction(R.fraction.config_keyboard_top_padding_holo, - defaultKeyboardHeight, defaultKeyboardHeight).toInt() + defaultKeyboardHeight, defaultKeyboardHeight).toInt() val rowCount = KeyboardParams.DEFAULT_KEYBOARD_ROWS + if (sv.mShowsNumberRow) 1 else 0 bottomRowKeyboardHeight = (defaultKeyboardHeight - bottomPadding - topPadding) / rowCount - keyVerticalGap / 2 @@ -64,4 +66,4 @@ class ClipboardLayoutParams(ctx: Context) { view.layoutParams = this } } -} \ No newline at end of file +} diff --git a/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt index 3444c8aa..680cfd24 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt @@ -5,7 +5,7 @@ */ package helium314.keyboard.keyboard.emoji -import android.content.res.Resources +import android.content.Context import android.view.View import android.widget.LinearLayout import androidx.recyclerview.widget.RecyclerView @@ -14,13 +14,14 @@ import helium314.keyboard.latin.R import helium314.keyboard.latin.settings.Settings import helium314.keyboard.latin.utils.ResourceUtils -internal class EmojiLayoutParams(res: Resources) { +internal class EmojiLayoutParams(ctx: Context) { private val emojiListBottomMargin: Int val emojiKeyboardHeight: Int private val emojiCategoryPageIdViewHeight: Int val bottomRowKeyboardHeight: Int init { + val res = ctx.resources val sv = Settings.getValues() val defaultKeyboardHeight = ResourceUtils.getKeyboardHeight(res, sv) @@ -32,7 +33,8 @@ internal class EmojiLayoutParams(res: Resources) { defaultKeyboardHeight, defaultKeyboardHeight).toInt() } val bottomPadding = (res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, - defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale).toInt() + defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale + + ResourceUtils.getBottomPaddingAdjustment(ctx)).toInt() val topPadding = res.getFraction(R.fraction.config_keyboard_top_padding_holo, defaultKeyboardHeight, defaultKeyboardHeight).toInt() diff --git a/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiPalettesView.java b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiPalettesView.java index 56a73865..1061c56b 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiPalettesView.java +++ b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiPalettesView.java @@ -87,8 +87,7 @@ public final class EmojiPalettesView extends LinearLayout super(context, attrs, defStyle); mColors = Settings.getValues().mColors; final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(context, null); - final Resources res = context.getResources(); - mEmojiLayoutParams = new EmojiLayoutParams(res); + mEmojiLayoutParams = new EmojiLayoutParams(context); builder.setSubtype(RichInputMethodSubtype.Companion.getEmojiSubtype()); builder.setKeyboardGeometry(ResourceUtils.getKeyboardWidth(context, Settings.getValues()), mEmojiLayoutParams.getEmojiKeyboardHeight()); @@ -360,4 +359,4 @@ public final class EmojiPalettesView extends LinearLayout public void clearKeyboardCache() { mEmojiCategory.clearKeyboardCache(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java index 50ba0dad..e2a6771d 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java @@ -8,14 +8,9 @@ package helium314.keyboard.keyboard.internal; import android.content.Context; import android.content.res.TypedArray; -import android.graphics.Insets; -import android.os.Build; import android.util.AttributeSet; import android.util.SparseIntArray; -import android.view.WindowInsets; -import android.view.WindowManager; -import android.view.WindowMetrics; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -229,16 +224,8 @@ public class KeyboardParams { R.styleable.Keyboard_keyboardTopPadding, height, height, 0); mBottomPadding = (int) (keyboardAttr.getFraction( R.styleable.Keyboard_keyboardBottomPadding, height, height, 0) - * Settings.getValues().mBottomPaddingScale); - - if (Build.VERSION.SDK_INT >= 35) { - WindowManager wm = context.getSystemService(WindowManager.class); - WindowMetrics windowMetrics = wm.getCurrentWindowMetrics(); - WindowInsets windowInsets = windowMetrics.getWindowInsets(); - int insetTypes = WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout(); - Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); - mBottomPadding += insets.bottom; - } + * Settings.getValues().mBottomPaddingScale) + + ResourceUtils.getBottomPaddingAdjustment(context); mLeftPadding = (int) (keyboardAttr.getFraction( R.styleable.Keyboard_keyboardLeftPadding, width, width, 0) diff --git a/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java b/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java index 3ff53dad..00232598 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java +++ b/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java @@ -133,4 +133,17 @@ public final class ResourceUtils { public static boolean isNight(final Resources res) { return (res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES; } + + public static int getBottomPaddingAdjustment(Context context) { + if (Build.VERSION.SDK_INT < 35) { + return 0; + } + + WindowManager wm = context.getSystemService(WindowManager.class); + WindowMetrics windowMetrics = wm.getCurrentWindowMetrics(); + WindowInsets windowInsets = windowMetrics.getWindowInsets(); + int insetTypes = WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout(); + Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); + return insets.bottom; + } }