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


##########
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:
   Ok. In your video the method is only called two times when the keyboard 
appears or dismisses, which is not so much, but the values were the same for 
left, top, right, bottom. So I think this is ok to keep this.



-- 
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