Open
Conversation
# Conflicts: # android/build.gradle # android/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt # android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java # android/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainer.kt # e2e/SideMenu.test.js # e2e/assets/overlay_banner_padding.png # lib/android/app/build.gradle # lib/android/app/src/main/java/com/reactnativenavigation/utils/ColorUtils.java # lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt # lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java # lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsLayout.java # lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorAnimator.kt # lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorEvaluator.kt # lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt # lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java # lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java # lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java # lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java # lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java # lib/ios/RNNAppDelegate.mm # package.json # playground/android/settings.gradle # playground/package.json # yarn.lock
yedidyak
reviewed
Apr 9, 2026
...id/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt
Show resolved
Hide resolved
yedidyak
reviewed
Apr 9, 2026
android/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt
Outdated
Show resolved
Hide resolved
yedidyak
reviewed
Apr 9, 2026
yedidyak
reviewed
Apr 9, 2026
| a.recycle(); | ||
| if (!optOut) { | ||
| EdgeToEdge.enable(this); | ||
| SystemUiUtils.activateEdgeToEdge(); |
Contributor
There was a problem hiding this comment.
The new internal edge-to-edge flag is only set in the default NavigationActivity.enableEdgeToEdge() implementation via SystemUiUtils.activateEdgeToEdge(). If an app overrides enableEdgeToEdge() and calls EdgeToEdge.enable(this) itself, the override never reaches that helper, so ComponentViewController still treats edge-to-edge as inactive and skips forwarding nav-bar insets to SafeAreaView, while nav-bar colors continue going through the non-edge-to-edge path. That is also the exact override pattern documented in the new guide, so custom adopters of this API will get partially broken edge-to-edge behavior unless they know to call an extra internal helper.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Android Edge-to-Edge Support
Adds opt-in edge-to-edge display support for Android 15+ (API 35), where the system enforces edge-to-edge by default.
Key changes
android:windowOptOutEdgeToEdgeEnforcementtofalsein their theme.NavigationActivity.enableEdgeToEdge()reads this attribute and callsEdgeToEdge.enable()accordingly. The method isprotectedand overridable for custom behavior.window.statusBarColor/window.navigationBarColorAPIs with view-based backgrounds inSystemUiUtils. A status bar background view is sourced from the DecorView, and a navigation bar background view is created and sized dynamically viaWindowInsetsCompat. Both fall back to the deprecated window APIs when edge-to-edge is not active.SafeAreaView—ComponentViewController.onApplyWindowInsetsnow correctly passes navigation bar insets through to React Native'sSafeAreaViewwhen edge-to-edge is active, so content is properly inset from the system navigation bar. When edge-to-edge is off, only IME insets are forwarded (preserving existing behavior).BottomTabsPresenterandBottomTabsContaineraccount for navigation bar insets when drawing behind system bars.SystemUiUtilsdetects the navigation mode (gesture vs 3-button) at runtime via tappable element insets, applying appropriate default opacity for the navigation bar background.https://wix.atlassian.net/browse/WOAINFRA-3303