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
android/src/main/java/com/reactnativenavigation/NavigationActivity.java
Outdated
Show resolved
Hide resolved
…when edge-to-edge activates activateEdgeToEdge() is the action method — it does both EdgeToEdge.enable(this) and SystemUiUtils.activateEdgeToEdge(), so it's impossible to enable Android edge-to-edge without also setting RNN's internal flag The docs now show activateEdgeToEdge() in the override example instead of EdgeToEdge.enable(this)
yedidyak
approved these changes
Apr 12, 2026
Contributor
yedidyak
left a comment
There was a problem hiding this comment.
Re-reviewed after the latest edge-to-edge follow-up changes. The remaining override-path concern now looks addressed: custom overrides are routed through activateEdgeToEdge(), and the docs match that contract.
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