Add bottom inset padding on Android15+

This commit is contained in:
eranl 2025-04-05 20:47:10 +03:00
parent 6995266bd1
commit 5cf66c907a

View file

@ -8,9 +8,14 @@ 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;
@ -225,6 +230,16 @@ public class KeyboardParams {
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;
}
mLeftPadding = (int) (keyboardAttr.getFraction(
R.styleable.Keyboard_keyboardLeftPadding, width, width, 0)
* Settings.getValues().mSidePaddingScale);