Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions android/app/src/main/res/anim/rns_slide_in_from_left.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See rns_slide_in_from_right.xml — keep all four rns_slide_* durations in sync. -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:fromXDelta="-100%"
android:toXDelta="0%" />
9 changes: 9 additions & 0 deletions android/app/src/main/res/anim/rns_slide_in_from_right.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Overrides react-native-screens' slide animation (400ms config_mediumAnimTime).
The animationDuration screen option is a no-op on Android, so app-level
resource merging is the only way to change the stack transition speed.
Keep all four rns_slide_* durations in sync. -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:fromXDelta="100%"
android:toXDelta="0%" />
6 changes: 6 additions & 0 deletions android/app/src/main/res/anim/rns_slide_out_to_left.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See rns_slide_in_from_right.xml — keep all four rns_slide_* durations in sync. -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:fromXDelta="0%"
android:toXDelta="-100%"/>
6 changes: 6 additions & 0 deletions android/app/src/main/res/anim/rns_slide_out_to_right.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See rns_slide_in_from_right.xml — keep all four rns_slide_* durations in sync. -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:fromXDelta="0%"
android:toXDelta="100%"/>
9 changes: 9 additions & 0 deletions mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,12 @@
node = "24"
bun = "1.3.14"
java = "temurin-25.0.3+9.0.LTS"

[env]
# On JDK 24+ the JVM warns on stderr when JNA calls System::load (JEP 472).
# AGP forks the prefab CLI during configureCMake* and fails the build on any
# unrecognized stderr line, so the warning breaks `bun run android`. AGP does
# whitelist the "Picked up JAVA_TOOL_OPTIONS" line, making this env var the
# supported way to grant native access in forked JVMs until the AGP fix
# (issuetracker b/469503601) ships in a release.
JAVA_TOOL_OPTIONS = "--enable-native-access=ALL-UNNAMED"
4 changes: 4 additions & 0 deletions src/navigation/RootNavigator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ const Stack = createNativeStackNavigator<RootStackParamList>();
* The authenticated app's screen stack. Headers are hidden — each screen draws
* its own chrome edge-to-edge and applies its own safe-area padding. The detail
* screen slides in from the right as a standard forward push.
*
* Transition speed: react-navigation's `animationDuration` option is a no-op on
* Android, so the slide duration is set by overriding react-native-screens'
* anim resources in android/app/src/main/res/anim/rns_slide_*.xml.
*/
export function RootNavigator() {
return (
Expand Down
Loading