From 2fa5b89033602154e8e1ad5e98077b49fc8f8013 Mon Sep 17 00:00:00 2001 From: Alan Lee Date: Thu, 31 Oct 2024 23:05:18 -0700 Subject: [PATCH] fix Modal content being cut off when Android Activity is edge-to-edge (#47339) Summary: Fixing issue raised in https://github.com/facebook/react-native/issues/47307 This is a follow up from D62286026. It appears there was a line that went missing while trying to refactor the code. `fitsSystemWindows = true` is needeod for < API 30 to avoid content rendering under the system bars when Modal is shown with Activity that is edge-to-edge. Changelog: [Android][Fixed] Fix Regression - Modal content rendering below system bar on < API 30 when activity is edge-to-edge Reviewed By: cortinico Differential Revision: D65280014 --- .../com/facebook/react/views/modal/ReactModalHostView.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt index ed607aa289c959..88c1c68269b082 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt @@ -300,7 +300,14 @@ public class ReactModalHostView(context: ThemedReactContext) : * changed. This has the pleasant side-effect of us not having to preface all Modals with "top: * statusBarHeight", since that margin will be included in the FrameLayout. */ - get() = FrameLayout(context).apply { addView(dialogRootViewGroup) } + get() = + FrameLayout(context).apply { + addView(dialogRootViewGroup) + if (!statusBarTranslucent) { + // this is needed to prevent content hiding behind systems bars < API 30 + this.fitsSystemWindows = true + } + } /** * updateProperties will update the properties that do not require us to recreate the dialog