From 19b921f34542c2e0dc4181e6c7e8ebabb6aa42f6 Mon Sep 17 00:00:00 2001 From: luisbytes <137983537+luisbytes@users.noreply.github.com> Date: Sat, 26 Sep 2026 22:21:27 +0000 Subject: [PATCH] fix: update Safe Area handling for AdView layout in BannerExecutor --- .../admob/banner/BannerExecutor.java | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java b/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java index beaf66e2..cdc6affa 100644 --- a/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java +++ b/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java @@ -2,7 +2,6 @@ import android.app.Activity; import android.content.Context; -import android.os.Build; import android.os.Handler; import android.os.Looper; import android.util.DisplayMetrics; @@ -243,23 +242,21 @@ public void showBanner(final PluginCall call) { mAdViewLayoutParams.setMargins(sideMargin, densityMargin, sideMargin, densityMargin); } - // set Safe Area only for Android 15+ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - View rootView = activitySupplier.get().getWindow().getDecorView(); - rootView.setOnApplyWindowInsetsListener((v, insets) -> { - int bottomInset = insets.getSystemWindowInsetBottom(); - int topInset = insets.getSystemWindowInsetTop(); - - if ("TOP_CENTER".equals(adOptions.position)) { - mAdViewLayoutParams.setMargins(margins[0], margins[1] + topInset, margins[2], margins[3]); - } else { - mAdViewLayoutParams.setMargins(margins[0], margins[1], margins[2], margins[3] + bottomInset); - } + mAdViewLayout.setOnApplyWindowInsetsListener((v, insets) -> { + int bottomInset = insets.getSystemWindowInsetBottom(); + int topInset = insets.getSystemWindowInsetTop(); - mAdViewLayout.setLayoutParams(mAdViewLayoutParams); - return insets; - }); - } + if ("TOP_CENTER".equals(adOptions.position)) { + mAdViewLayoutParams.setMargins(margins[0], margins[1] + topInset, margins[2], margins[3]); + } else { + mAdViewLayoutParams.setMargins(margins[0], margins[1], margins[2], margins[3] + bottomInset); + } + + mAdViewLayout.setLayoutParams(mAdViewLayoutParams); + return insets; + }); + + mAdViewLayout.requestApplyInsets(); createNewAdView(adOptions);