From 2f88cdd792f672a8fc1a9bc0e04f89208e1118fa Mon Sep 17 00:00:00 2001 From: eranl <1707552+eranl@users.noreply.github.com> Date: Mon, 7 Apr 2025 00:54:49 +0300 Subject: [PATCH 1/5] Add bottom inset padding on Android15+ for emoji and clipboard views --- .../keyboard/clipboard/ClipboardLayoutParams.kt | 8 +++++--- .../keyboard/emoji/EmojiLayoutParams.kt | 8 +++++--- .../keyboard/emoji/EmojiPalettesView.java | 5 ++--- .../keyboard/internal/KeyboardParams.java | 17 ++--------------- .../keyboard/latin/utils/ResourceUtils.java | 13 +++++++++++++ 5 files changed, 27 insertions(+), 24 deletions(-) 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 1eada9c2c..43a25e70c 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 3444c8aad..680cfd24f 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 56a738659..1061c56b0 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 50ba0dad6..e2a6771d2 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 3ff53dadd..002325984 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; + } } From 4755324e1093acd0dcfa22b1fe614a18136adec4 Mon Sep 17 00:00:00 2001 From: eranl <1707552+eranl@users.noreply.github.com> Date: Tue, 8 Apr 2025 01:04:26 +0300 Subject: [PATCH 2/5] Subtract bottom inset padding from popups on Android15+ --- .../helium314/keyboard/keyboard/PopupKeysKeyboard.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java b/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java index 645e420bb..cf0261ccd 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java +++ b/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java @@ -16,6 +16,7 @@ import helium314.keyboard.keyboard.internal.KeyboardParams; import helium314.keyboard.keyboard.internal.PopupKeySpec; import helium314.keyboard.latin.R; import helium314.keyboard.latin.common.StringUtils; +import helium314.keyboard.latin.utils.ResourceUtils; import helium314.keyboard.latin.utils.TypefaceUtils; public final class PopupKeysKeyboard extends Keyboard { @@ -65,7 +66,7 @@ public final class PopupKeysKeyboard extends Keyboard { public void setParameters(final int numKeys, final int numColumn, final int keyWidth, final int rowHeight, final int coordXInParent, final int parentKeyboardWidth, final boolean isPopupKeysFixedColumn, final boolean isPopupKeysFixedOrder, - final int dividerWidth) { + final int dividerWidth, Context context) { mIsPopupKeysFixedOrder = isPopupKeysFixedOrder; if (parentKeyboardWidth / keyWidth < Math.min(numKeys, numColumn)) { throw new IllegalArgumentException("Keyboard is too small to hold popup keys: " @@ -120,7 +121,7 @@ public final class PopupKeysKeyboard extends Keyboard { mBaseWidth = mOccupiedWidth = mNumColumns * mColumnWidth - mDividerWidth; // Need to subtract the bottom row's gutter only. mBaseHeight = mOccupiedHeight = mNumRows * mDefaultAbsoluteRowHeight - mVerticalGap - + mTopPadding + mBottomPadding; + + mTopPadding + mBottomPadding - ResourceUtils.getBottomPaddingAdjustment(context); } private int getFixedOrderTopRowAdjustment() { @@ -305,7 +306,7 @@ public final class PopupKeysKeyboard extends Keyboard { : (spaceForKeys > 0 ? spaceForKeys : defaultColumns); // in last case setParameters will throw an exception mParams.setParameters(popupKeys.length, finalNumColumns, keyWidth, rowHeight, key.getX() + key.getWidth() / 2, keyboard.mId.mWidth, - key.isPopupKeysFixedColumn(), key.isPopupKeysFixedOrder(), dividerWidth); + key.isPopupKeysFixedColumn(), key.isPopupKeysFixedOrder(), dividerWidth, context); } private static int getMaxKeyWidth(final Key parentKey, final int minKeyWidth, From ca345b9395a60dee7321825a16c8fefa5dc62f62 Mon Sep 17 00:00:00 2001 From: eranl <1707552+eranl@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:05:26 +0300 Subject: [PATCH 3/5] Try to use `getMaximumWindowMetrics` for bottom inset padding on Android15+ --- .../main/java/helium314/keyboard/latin/utils/ResourceUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 002325984..d0879e1f2 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java +++ b/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java @@ -140,7 +140,7 @@ public final class ResourceUtils { } WindowManager wm = context.getSystemService(WindowManager.class); - WindowMetrics windowMetrics = wm.getCurrentWindowMetrics(); + WindowMetrics windowMetrics = wm.getMaximumWindowMetrics(); WindowInsets windowInsets = windowMetrics.getWindowInsets(); int insetTypes = WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout(); Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); From 7210174dff5ba6b3b029ecbebe8accb7c3f3e6f8 Mon Sep 17 00:00:00 2001 From: eranl <1707552+eranl@users.noreply.github.com> Date: Fri, 11 Apr 2025 01:55:17 +0300 Subject: [PATCH 4/5] Try to use `navigationBars()` and `insets.bottom + insets.top` for bottom inset padding on Android15+. Log insets for debugging. --- .../keyboard/latin/utils/ResourceUtils.java | 52 +++++++++++++++---- 1 file changed, 43 insertions(+), 9 deletions(-) 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 d0879e1f2..417e7e208 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java +++ b/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java @@ -6,6 +6,9 @@ package helium314.keyboard.latin.utils; +import java.util.function.BiFunction; + +import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -19,6 +22,7 @@ import android.view.WindowInsets; import android.view.WindowManager; import android.view.WindowMetrics; +import androidx.annotation.RequiresApi; import helium314.keyboard.latin.R; import helium314.keyboard.latin.settings.SettingsValues; @@ -135,15 +139,45 @@ public final class ResourceUtils { } public static int getBottomPaddingAdjustment(Context context) { - if (Build.VERSION.SDK_INT < 35) { - return 0; - } + if (Build.VERSION.SDK_INT < 35) { + return 0; + } - WindowManager wm = context.getSystemService(WindowManager.class); - WindowMetrics windowMetrics = wm.getMaximumWindowMetrics(); - WindowInsets windowInsets = windowMetrics.getWindowInsets(); - int insetTypes = WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout(); - Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); - return insets.bottom; + WindowManager wm = context.getSystemService(WindowManager.class); + logInsets(wm.getMaximumWindowMetrics(), "max-metrics"); + logInsets(wm.getCurrentWindowMetrics(), "current-metrics"); + + WindowMetrics windowMetrics = wm.getMaximumWindowMetrics(); + WindowInsets windowInsets = windowMetrics.getWindowInsets(); + int insetTypes = WindowInsets.Type.navigationBars(); + Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); + return insets.bottom + insets.top; + } + + @RequiresApi(api = Build.VERSION_CODES.R) + private static void logInsets(WindowMetrics metrics, String metricsType) { + logInsets(metrics, metricsType, WindowInsets::getInsets, "insets"); + logInsets(metrics, metricsType, WindowInsets::getInsetsIgnoringVisibility, "insetsIgnoringVisibility"); + } + + @RequiresApi(api = Build.VERSION_CODES.R) + private static void logInsets(WindowMetrics metrics, String metricsType, + BiFunction insetsGetter, String visibility) { + logInsets(metrics, metricsType, WindowInsets.Type.navigationBars(),"navigationBars", + insetsGetter, visibility); + logInsets(metrics, metricsType, WindowInsets.Type.systemBars(), "systemBars", insetsGetter, visibility); + logInsets(metrics, metricsType, WindowInsets.Type.statusBars(), "statusBars", insetsGetter, visibility); + logInsets(metrics, metricsType, WindowInsets.Type.displayCutout(),"displayCutout", + insetsGetter, visibility); + } + + @RequiresApi(api = Build.VERSION_CODES.R) + @SuppressLint("DefaultLocale") + private static void logInsets(WindowMetrics metrics, String metricsType, int insetTypes, String insetsType, + BiFunction insetsGetter, String visibility) { + WindowInsets windowInsets = metrics.getWindowInsets(); + Insets insets = insetsGetter.apply(windowInsets, insetTypes); + Log.i("insets", String.format("%s, %s, %s, bottom %d, top %d", metricsType, insetsType, visibility, + insets.bottom, insets.top)); } } From 2cba77cdee3cfac1791f7a9c664d326d1cc0672a Mon Sep 17 00:00:00 2001 From: eranl <1707552+eranl@users.noreply.github.com> Date: Sun, 13 Apr 2025 17:17:32 +0300 Subject: [PATCH 5/5] Use `setFitsSystemWindows` for bottom inset padding on Android15+. Log versions on startup. --- .../keyboard/keyboard/KeyboardView.java | 2 + .../keyboard/keyboard/PopupKeysKeyboard.java | 2 +- .../clipboard/ClipboardLayoutParams.kt | 3 +- .../keyboard/emoji/EmojiLayoutParams.kt | 3 +- .../keyboard/internal/KeyboardParams.java | 4 +- .../main/java/helium314/keyboard/latin/App.kt | 9 ++++ .../keyboard/latin/utils/ResourceUtils.java | 47 ------------------- 7 files changed, 15 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/keyboard/KeyboardView.java b/app/src/main/java/helium314/keyboard/keyboard/KeyboardView.java index 6fbf8238b..7b2b21f4e 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/KeyboardView.java +++ b/app/src/main/java/helium314/keyboard/keyboard/KeyboardView.java @@ -148,6 +148,8 @@ public class KeyboardView extends View { mPaint.setAntiAlias(true); mTypeface = Settings.getInstance().getCustomTypeface(); + + setFitsSystemWindows(true); } @Nullable diff --git a/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java b/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java index cf0261ccd..4f3a04f6c 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java +++ b/app/src/main/java/helium314/keyboard/keyboard/PopupKeysKeyboard.java @@ -121,7 +121,7 @@ public final class PopupKeysKeyboard extends Keyboard { mBaseWidth = mOccupiedWidth = mNumColumns * mColumnWidth - mDividerWidth; // Need to subtract the bottom row's gutter only. mBaseHeight = mOccupiedHeight = mNumRows * mDefaultAbsoluteRowHeight - mVerticalGap - + mTopPadding + mBottomPadding - ResourceUtils.getBottomPaddingAdjustment(context); + + mTopPadding + mBottomPadding; } private int getFixedOrderTopRowAdjustment() { 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 43a25e70c..b066cea7c 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/clipboard/ClipboardLayoutParams.kt @@ -37,8 +37,7 @@ class ClipboardLayoutParams(ctx: Context) { defaultKeyboardWidth, defaultKeyboardWidth).toInt() } val bottomPadding = (res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, - defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale - + ResourceUtils.getBottomPaddingAdjustment(ctx)).toInt() + defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale).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/EmojiLayoutParams.kt b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt index 680cfd24f..5d459fb95 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/emoji/EmojiLayoutParams.kt @@ -33,8 +33,7 @@ internal class EmojiLayoutParams(ctx: Context) { defaultKeyboardHeight, defaultKeyboardHeight).toInt() } val bottomPadding = (res.getFraction(R.fraction.config_keyboard_bottom_padding_holo, - defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale - + ResourceUtils.getBottomPaddingAdjustment(ctx)).toInt() + defaultKeyboardHeight, defaultKeyboardHeight) * sv.mBottomPaddingScale).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/internal/KeyboardParams.java b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java index e2a6771d2..56e3ebe65 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardParams.java @@ -224,9 +224,7 @@ public class KeyboardParams { R.styleable.Keyboard_keyboardTopPadding, height, height, 0); mBottomPadding = (int) (keyboardAttr.getFraction( R.styleable.Keyboard_keyboardBottomPadding, height, height, 0) - * Settings.getValues().mBottomPaddingScale) - + ResourceUtils.getBottomPaddingAdjustment(context); - + * Settings.getValues().mBottomPaddingScale); mLeftPadding = (int) (keyboardAttr.getFraction( R.styleable.Keyboard_keyboardLeftPadding, width, width, 0) * Settings.getValues().mSidePaddingScale); diff --git a/app/src/main/java/helium314/keyboard/latin/App.kt b/app/src/main/java/helium314/keyboard/latin/App.kt index 2ed0765c3..ad6ef8db7 100644 --- a/app/src/main/java/helium314/keyboard/latin/App.kt +++ b/app/src/main/java/helium314/keyboard/latin/App.kt @@ -23,6 +23,7 @@ import helium314.keyboard.latin.utils.DictionaryInfoUtils.USER_DICTIONARY_SUFFIX import helium314.keyboard.latin.utils.LayoutType import helium314.keyboard.latin.utils.LayoutType.Companion.folder import helium314.keyboard.latin.utils.LayoutUtilsCustom +import helium314.keyboard.latin.utils.Log import helium314.keyboard.latin.utils.ScriptUtils.SCRIPT_LATIN import helium314.keyboard.latin.utils.ScriptUtils.script import helium314.keyboard.latin.utils.SubtypeSettings @@ -51,6 +52,14 @@ class App : Application() { checkVersionUpgrade(this) app = this Defaults.initDynamicDefaults(this) + + val packageInfo = packageManager.getPackageInfo(packageName, 0) + @Suppress("DEPRECATION") + Log.i( + "startup", "Starting ${applicationInfo.processName} version ${packageInfo.versionName} (${ + packageInfo.versionCode + }) on Android ${android.os.Build.VERSION.RELEASE} (SDK ${android.os.Build.VERSION.SDK_INT})" + ) } companion object { 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 417e7e208..3ff53dadd 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java +++ b/app/src/main/java/helium314/keyboard/latin/utils/ResourceUtils.java @@ -6,9 +6,6 @@ package helium314.keyboard.latin.utils; -import java.util.function.BiFunction; - -import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -22,7 +19,6 @@ import android.view.WindowInsets; import android.view.WindowManager; import android.view.WindowMetrics; -import androidx.annotation.RequiresApi; import helium314.keyboard.latin.R; import helium314.keyboard.latin.settings.SettingsValues; @@ -137,47 +133,4 @@ 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); - logInsets(wm.getMaximumWindowMetrics(), "max-metrics"); - logInsets(wm.getCurrentWindowMetrics(), "current-metrics"); - - WindowMetrics windowMetrics = wm.getMaximumWindowMetrics(); - WindowInsets windowInsets = windowMetrics.getWindowInsets(); - int insetTypes = WindowInsets.Type.navigationBars(); - Insets insets = windowInsets.getInsetsIgnoringVisibility(insetTypes); - return insets.bottom + insets.top; - } - - @RequiresApi(api = Build.VERSION_CODES.R) - private static void logInsets(WindowMetrics metrics, String metricsType) { - logInsets(metrics, metricsType, WindowInsets::getInsets, "insets"); - logInsets(metrics, metricsType, WindowInsets::getInsetsIgnoringVisibility, "insetsIgnoringVisibility"); - } - - @RequiresApi(api = Build.VERSION_CODES.R) - private static void logInsets(WindowMetrics metrics, String metricsType, - BiFunction insetsGetter, String visibility) { - logInsets(metrics, metricsType, WindowInsets.Type.navigationBars(),"navigationBars", - insetsGetter, visibility); - logInsets(metrics, metricsType, WindowInsets.Type.systemBars(), "systemBars", insetsGetter, visibility); - logInsets(metrics, metricsType, WindowInsets.Type.statusBars(), "statusBars", insetsGetter, visibility); - logInsets(metrics, metricsType, WindowInsets.Type.displayCutout(),"displayCutout", - insetsGetter, visibility); - } - - @RequiresApi(api = Build.VERSION_CODES.R) - @SuppressLint("DefaultLocale") - private static void logInsets(WindowMetrics metrics, String metricsType, int insetTypes, String insetsType, - BiFunction insetsGetter, String visibility) { - WindowInsets windowInsets = metrics.getWindowInsets(); - Insets insets = insetsGetter.apply(windowInsets, insetTypes); - Log.i("insets", String.format("%s, %s, %s, bottom %d, top %d", metricsType, insetsType, visibility, - insets.bottom, insets.top)); - } }