GitToTheHub commented on code in PR #1924:
URL: https://github.com/apache/cordova-android/pull/1924#discussion_r3252770581


##########
framework/src/org/apache/cordova/CordovaActivity.java:
##########
@@ -225,13 +225,25 @@ protected void createViews() {
 
             boolean isStatusBarVisible = statusBarView.getVisibility() != 
View.GONE;
             int top = isStatusBarVisible && !canEdgeToEdge && !isFullScreen ? 
bars.top : 0;
-            int bottom = !canEdgeToEdge && !isFullScreen ? bars.bottom : 0;
             int left = !canEdgeToEdge && !isFullScreen ? bars.left : 0;
             int right = !canEdgeToEdge && !isFullScreen ? bars.right : 0;
 
+            int bottom = 0;
+            Insets imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime());
+            // When in fullscreen mode, we ignore bottom system insets (like 
the navigation bar)
+            // to allow the WebView to span the entire screen and avoid being 
pushed up.
+            if (!isFullScreen) {
+                bottom = canEdgeToEdge ? imeInsets.bottom : 
Math.max(bars.bottom, imeInsets.bottom);
+            }
+
             FrameLayout.LayoutParams webViewParams = 
(FrameLayout.LayoutParams) webView.getLayoutParams();
-            webViewParams.setMargins(left, top, right, bottom);
-            webView.setLayoutParams(webViewParams);
+            // Only update layout margins if the values have actually changed.
+            // This prevents redundant layout passes and potential infinite 
layout loops
+            if (webViewParams.leftMargin != left || webViewParams.topMargin != 
top
+                    || webViewParams.rightMargin != right || 
webViewParams.bottomMargin != bottom) {

Review Comment:
   This code will only be executed when the `OnApplyWindowInsetsListener` is 
fired. Is this condition really necessary to guard:
   
   ```java
   webViewParams.setMargins(left, top, right, bottom);
   webView.setLayoutParams(webViewParams);
   ```
   
   or would this re-trigger the `OnApplyWindowInsetsListener`?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to