From 01f8b41789251d461fe6c1212cfb97bf572e2fdc Mon Sep 17 00:00:00 2001 From: Luis Rhenals <137983537+luisbytes@users.noreply.github.com> Date: Fri, 18 Apr 2025 21:42:36 -0500 Subject: [PATCH 1/4] feat(android-edge-to-edge-support): add resize webview when keyboard is shown --- .../androidedgetoedgesupport/EdgeToEdge.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java b/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java index 2fd29da3..bcaa5fef 100644 --- a/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java +++ b/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java @@ -46,25 +46,24 @@ private void applyInsets() { parent.setBackgroundColor(this.config.getBackgroundColor()); // Apply insets to disable the edge-to-edge feature ViewCompat.setOnApplyWindowInsetsListener(view, (v, windowInsets) -> { - Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()); - Boolean keyboardVisible = windowInsets.isVisible(WindowInsetsCompat.Type.ime()); + // Retrieve system bars insets (for status/navigation bars) + Insets systemBarsInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()); + // Retrieve keyboard (IME) insets + Insets imeInsets = windowInsets.getInsets(WindowInsetsCompat.Type.ime()); + boolean keyboardVisible = windowInsets.isVisible(WindowInsetsCompat.Type.ime()); ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - if (keyboardVisible) { - mlp.bottomMargin = 0; - } else { - mlp.bottomMargin = insets.bottom; - } - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - mlp.bottomMargin = insets.bottom; - } + // Apply the appropriate bottom inset: use keyboard inset if visible, else system bars inset + mlp.bottomMargin = keyboardVisible ? imeInsets.bottom : systemBarsInsets.bottom; + + // Set the other margins using system bars insets + mlp.topMargin = systemBarsInsets.top; + mlp.leftMargin = systemBarsInsets.left; + mlp.rightMargin = systemBarsInsets.right; - mlp.leftMargin = insets.left; - mlp.rightMargin = insets.right; - mlp.topMargin = insets.top; v.setLayoutParams(mlp); + return WindowInsetsCompat.CONSUMED; }); } From 0eb127d022bee8068cfeeedf80b00920bdb6f570 Mon Sep 17 00:00:00 2001 From: Luis Rhenals <137983537+luisbytes@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:51:14 +0000 Subject: [PATCH 2/4] Update changelog --- .changeset/ten-bees-perform.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/ten-bees-perform.md diff --git a/.changeset/ten-bees-perform.md b/.changeset/ten-bees-perform.md new file mode 100644 index 00000000..5207ced5 --- /dev/null +++ b/.changeset/ten-bees-perform.md @@ -0,0 +1,5 @@ +--- +'@capawesome/capacitor-android-edge-to-edge-support': minor +--- + +feat: add resize webview when keyboard is shown From 1089c64bb7a0ad1a1ea6b2117ef645e04130a274 Mon Sep 17 00:00:00 2001 From: Robin Genz Date: Sat, 19 Apr 2025 10:08:19 +0200 Subject: [PATCH 3/4] Update .changeset/ten-bees-perform.md --- .changeset/ten-bees-perform.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/ten-bees-perform.md b/.changeset/ten-bees-perform.md index 5207ced5..042fb724 100644 --- a/.changeset/ten-bees-perform.md +++ b/.changeset/ten-bees-perform.md @@ -1,5 +1,5 @@ --- -'@capawesome/capacitor-android-edge-to-edge-support': minor +'@capawesome/capacitor-android-edge-to-edge-support': patch --- -feat: add resize webview when keyboard is shown +fix: resize webview when keyboard is shown From 632997afdb7de9330bae59efc51a293d30bb1686 Mon Sep 17 00:00:00 2001 From: Luis Rhenals <137983537+luisbytes@users.noreply.github.com> Date: Sat, 19 Apr 2025 15:41:21 +0000 Subject: [PATCH 4/4] chore(android-edge-to-edge-support): fmt --- .../plugins/androidedgetoedgesupport/EdgeToEdge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java b/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java index bcaa5fef..83a02261 100644 --- a/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java +++ b/packages/android-edge-to-edge-support/android/src/main/java/io/capawesome/capacitorjs/plugins/androidedgetoedgesupport/EdgeToEdge.java @@ -63,7 +63,7 @@ private void applyInsets() { mlp.rightMargin = systemBarsInsets.right; v.setLayoutParams(mlp); - + return WindowInsetsCompat.CONSUMED; }); }