Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Remove android specific NavControllerViewModel
Expand for full commit details
Remove android specific NavControllerViewModel
Everything in NavControllerViewModel is common API so we don't need an
Android version. Moving that code to common.
Test: all tests pass
Bug: 403616316
Change-Id: Ibe154b2d04adc0a536f9a5e170cc8fbb44ed1bcf
Files:
- D
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavControllerViewModel.android.kt
- M
navigation/navigation-runtime/src/commonMain/kotlin/androidx/navigation/NavControllerViewModel.kt
Hash: 3bb40a6be709d8c7e13f56f248a6433154aec72e
Date: Fri Mar 14 21:37:30 2025
kr...@gmail.com <kr...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Implement nonAndroid NavType
Expand for full commit details
Implement nonAndroid NavType
Moving call common implementation of NavType to commonMain and then
allow both the nonAndroid and Android implementation to use them.
Test: all tests pass
Bug: 403616316
Change-Id: I297d8846859aaa719b179c7e69e993d0d6e28fd6
Files:
- M
navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavType.android.kt
- M
navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavType.kt
- M
navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavType.nonAndroid.kt
Hash: 8f968ddbb3b8296af2033db4cf2658255fa43853
Date: Fri Mar 14 22:41:34 2025
il...@google.com <il...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Change NavBackStackEntryState to SavedState
Expand for full commit details
Change NavBackStackEntryState to SavedState
Instead of NavBackStackEntryState being a Parcelable, we can change it
to use SavedState. This allows for compat with other platforms.
Test: all tests pass
Bug: 403616316
Change-Id: I1da40e98fbc70413e0818a95cb00aa1e5aa7a3dd
Files:
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavBackStackEntryState.android.kt
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt
- A
navigation/navigation-runtime/src/commonMain/kotlin/androidx/navigation/NavBackStackEntryState.kt
- A
navigation/navigation-runtime/src/commonMain/kotlin/androidx/navigation/internal/NavBackStackEntryStateImpl.kt
- A
navigation/navigation-runtime/src/nonAndroidMain/kotlin/androidx/navigation/NavBackStackEntryState.nonAndroid.kt
Hash: 52447f8ffb1f3e1f9890f8bb9d1ac1690aad508d
Date: Thu Mar 20 19:48:37 2025
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Introduce NavContext
Expand for full commit details
Introduce NavContext
Providing a multiplatform compatible version of Context that can be
used across navigation.
RelNote: "Added multi-platform NavContext that helps to wrap Android's context."
Test: all tests pass
Bug: 403616316
Change-Id: Ic4b1249ea6dc1a363855a4162ef136bf74809256
Files:
- M
navigation/navigation-common/bcv/native/current.txt
- M
navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavBackStackEntry.android.kt
- M
navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavDestination.android.kt
- M
navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraph.android.kt
- A
navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/internal/NavContext.android.kt
- M
navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavBackStackEntry.kt
- A
navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/internal/NavContext.kt
- M
navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavBackStackEntry.nonAndroid.kt
- A
navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/internal/NavContext.nonAndroid.kt
- M
navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavBackStackEntryTest.kt
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavBackStackEntryState.android.kt
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavDeepLinkBuilder.android.kt
- M
navigation/navigation-runtime/src/commonMain/kotlin/androidx/navigation/NavController.kt
- M
navigation/navigation-runtime/src/nonAndroidMain/kotlin/androidx/navigation/NavController.nonAndroid.kt
- M
navigation/navigation-testing/src/androidMain/kotlin/androidx/navigation/testing/TestNavigatorState.android.kt
- M
navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.kt
Hash: 11b876fc10dec008f1f3b979795470f92ed4bb19
Date: Fri Mar 21 15:15:05 2025
Description
Version used: 1.0.0-alpha06
Devices/Android versions reproduced on: Android 8.1.0, Samsung Galaxy J5 (I don't think it's device related)
Navigation library doesn't handle deep links properly when there are 2 deep links registered and the second one is an "extension" of the previous one. Let me give a simplified example to make it more clear:
<fragment android:name="com.example.EventFragment">
<argument
android:name="eventId"
app:argType="string" />
<action
android:id="@+id/exhibitorDetails"
app:destination="@id/exhibitorDetails" />
<deepLink app:uri="example://events/{eventId}" />
</fragment>
<activity android:id="@+id/exhibitorDetails"
android:name="com.example.ExhibitorsActivity">
<!-- I know, not a single Activity app. But that's the case. -->
<argument
android:name="exhibitorId"
app:argType="string" />
<deepLink app:uri="example://events/{eventId}/exhibitors/{exhibitorId}" />
</activity>
When I use a link: example://events/event123/exhibitors/exhibitor123 I expect navigation library to navigate to an ExhibitorsActivity. Instead, it navigates to EventFragment. Furthermore, an eventId passed to a fragment is invalid, in this case, it's: "event123/exhibitors/exhibitor123".
I believe it's a bug of regex: in my example, passed link matches both regexes: example://events/{eventId} and example://events/{eventId}/exhibitors/{exhibitorId}.