diff --git a/android/app/src/main/res/anim/rns_slide_in_from_left.xml b/android/app/src/main/res/anim/rns_slide_in_from_left.xml new file mode 100644 index 0000000..aaba142 --- /dev/null +++ b/android/app/src/main/res/anim/rns_slide_in_from_left.xml @@ -0,0 +1,6 @@ + + + diff --git a/android/app/src/main/res/anim/rns_slide_in_from_right.xml b/android/app/src/main/res/anim/rns_slide_in_from_right.xml new file mode 100644 index 0000000..39c5554 --- /dev/null +++ b/android/app/src/main/res/anim/rns_slide_in_from_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/app/src/main/res/anim/rns_slide_out_to_left.xml b/android/app/src/main/res/anim/rns_slide_out_to_left.xml new file mode 100644 index 0000000..dc79333 --- /dev/null +++ b/android/app/src/main/res/anim/rns_slide_out_to_left.xml @@ -0,0 +1,6 @@ + + + diff --git a/android/app/src/main/res/anim/rns_slide_out_to_right.xml b/android/app/src/main/res/anim/rns_slide_out_to_right.xml new file mode 100644 index 0000000..5ea49b2 --- /dev/null +++ b/android/app/src/main/res/anim/rns_slide_out_to_right.xml @@ -0,0 +1,6 @@ + + + diff --git a/mise.toml b/mise.toml index 391ce89..89fa444 100644 --- a/mise.toml +++ b/mise.toml @@ -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" diff --git a/src/navigation/RootNavigator.tsx b/src/navigation/RootNavigator.tsx index a66d4fe..f721a72 100644 --- a/src/navigation/RootNavigator.tsx +++ b/src/navigation/RootNavigator.tsx @@ -11,6 +11,10 @@ const Stack = createNativeStackNavigator(); * 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 (