Files
minibits_wallet/android/gradle.properties
T
minibits-cashandClaude Opus 4.8 cafef4f462 Render BottomModal in-tree via portal to fix edge-to-edge nav bar
Keep edgeToEdgeEnabled=true so the themed header draws behind the status
bar on pre-Android-15 devices (e.g. Moto G4). Android 15+ is edge-to-edge
OS-enforced regardless.

That flag also routes react-native Modal's native dialog window through RN
core's enableEdgeToEdge() (WindowUtil.kt), which hardcodes nav-bar contrast
enforcement and derives appearance from device dark mode, painting a grey
(white-in-dark) scrim on modal open/close. That code ships in the prebuilt
RN Android AAR and can't be patched.

Work around it without disabling the flag: on Android, BottomModal renders
in the app's React tree via @gorhom/portal (coverScreen={false}) instead of
as a native window, so it never hits that code path. A PortalProvider at the
app root keeps the modal overlaying the bottom tab bar. iOS keeps the native
modal path unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 12:34:31 +02:00

60 lines
2.9 KiB
Properties

# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
# Use this property to enable edge-to-edge display support.
# This allows your app to draw behind system bars for an immersive UI.
# Note: Only works with ReactActivity and should not be used with custom Activity.
#
# Kept TRUE. This makes the themed header draw behind the status bar on pre-Android-15
# devices (e.g. Moto G4) too (Android 15+ is edge-to-edge OS-enforced regardless).
#
# Heads-up: TRUE also forces react-native Modal's separate dialog *window* through RN
# core's enableEdgeToEdge() (WindowUtil.kt), which hardcodes isNavigationBarContrast-
# Enforced=true and derives nav-bar appearance from DEVICE dark mode — painting a grey
# (or white-in-dark) scrim behind the nav bar on modal open/close. That code is in the
# prebuilt RN Android AAR (unpatchable without building RN from source). We worked
# around it WITHOUT turning this flag off: BottomModal renders in-tree via @gorhom/portal
# (coverScreen={false}) on Android instead of as a native window, so it never hits that
# code path. Any NEW Android modal should use BottomModal / the same portal pattern
# rather than a raw native react-native Modal, or the scrim will come back.
# See project memory: android-edge-to-edge-modal-tradeoff.
edgeToEdgeEnabled=true