Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Convert navigation-testing to KMP
Expand for full commit details
Convert navigation-testing to KMP
Moving the navigation-testing module to KMP. This supports all the same
platforms as the rest of Navigation and has converted all uses of Bundle
to the new SaveState.
RelNote: "Navigation Testing is now a KMP module."
Test: all tests pass
Bug: 398265336
Change-Id: I2b7707a56f263be30420cae57e3b38480d7f0625
Files:
- M
docs-tip-of-tree/build.gradle
- A
navigation/navigation-testing/bcv/native/current.txt
- M
navigation/navigation-testing/build.gradle
- M
navigation/navigation-testing/src/androidInstrumentedTest/AndroidManifest.xml
- M
navigation/navigation-testing/src/androidInstrumentedTest/kotlin/androidx/navigation/testing/TestNavHostControllerTest.kt
- M
navigation/navigation-testing/src/androidInstrumentedTest/kotlin/androidx/navigation/testing/TestNavigatorStateTest.kt
- M
navigation/navigation-testing/src/androidInstrumentedTest/res/navigation/test_graph.xml
- M
navigation/navigation-testing/src/androidMain/AndroidManifest.xml
- M
navigation/navigation-testing/src/androidMain/kotlin/androidx/navigation/testing/TestNavHostController.android.kt
- M
navigation/navigation-testing/src/androidMain/kotlin/androidx/navigation/testing/TestNavigatorState.android.kt
- A
navigation/navigation-testing/src/androidUnitTest/kotlin/androidx/navigation/testing/RobolectricTest.android.kt
- M
navigation/navigation-testing/src/androidUnitTest/kotlin/androidx/navigation/testing/TestSavedStateHandleFactory.kt
- A
navigation/navigation-testing/src/commonMain/kotlin/androidx/navigation/testing/SavedStateHandleFactory.kt
- M
navigation/navigation-testing/src/commonMain/kotlin/androidx/navigation/testing/TestNavigatorProvider.kt
- D
navigation/navigation-testing/src/main/AndroidManifest.xml
- D
navigation/navigation-testing/src/main/java/androidx/navigation/testing/SavedStateHandleFactory.kt
Hash: 31ae4c7ebb13918db0e022b19246b7a47755ac65
Date: Fri Mar 07 09:11:14 2025
kr...@gmail.com <kr...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Implement jvmTest for navigation-testing
Expand for full commit details
Implement jvmTest for navigation-testing
Adding a copy of TestSavedStateHandleFactory to jvmCommonTest to ensure
that is runs on all nonAndroid platforms.
The `nullLiteralArgument` and `emptyStringArgument` tests are expected
to fail as they require the encoding and decoding the types which is
behavior only supported on the jetbrains fork.
Test: added tests
Bug: 398265336
Change-Id: I4c1dcfb697d6e9e16995b249b9a8351bd925e0f3
Files:
- M
navigation/navigation-testing/build.gradle
- A
navigation/navigation-testing/src/jvmCommonTest/kotlin/androidx/navigation/testing/TestSavedStateHandleFactory.kt
Hash: 139d2423c7625f19ececc94b2df5bfde24e2cf95
Date: Fri Mar 14 23:48:06 2025
il...@google.com <il...@google.com> #4
Yep, we'll fix it.
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #5
This has been fixed internally in https://android-review.googlesource.com/870978 and will be available in Navigation 1.0.0-alpha10.
Navigation now biases selecting deep links based on the number of matching arguments (more matching arguments are considered better matches).
Navigation now biases selecting deep links based on the number of matching arguments (more matching arguments are considered better matches).
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}.