mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-21 06:39:09 +00:00
Add bottom inset padding on Android15+ for emoji and clipboard views
This commit is contained in:
parent
f4b4705e81
commit
2f88cdd792
5 changed files with 27 additions and 24 deletions
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue