Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Looks like we're incorrectly using 0 as the placeholder value for 'no popUpTo was set' when in fact 0 is a valid value - the value of the root of the graph when no ID is set. We'll switch to a popUpTo of -1 as that default value.
il...@google.com <il...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 58cb7bb9e314406b30414b4198cba9d0d13256cb
Author: Ian Lake <ilake@google.com>
Date: Mon Feb 25 15:33:39 2019
Fix popUpTo with the root graph ID of 0
All navigation nodes must have a valid ID
*except* the root of the navigation graph, which
can have a ID of 0. We should still be able to
popUpTo the root of the graph by using
popUpTo on a navigate() option, so we need to change
the default value from 0 to -1.
Test: new NavControllerTest
Fixes: 126251695
Change-Id: Iac3ac25abdb91562753db25ff09d23bec7f46292
M navigation/common/ktx/src/main/java/androidx/navigation/NavOptionsBuilder.kt
M navigation/common/src/main/java/androidx/navigation/NavOptions.java
M navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
https://android-review.googlesource.com/912257
https://goto.google.com/android-sha1/58cb7bb9e314406b30414b4198cba9d0d13256cb
Branch: androidx-master-dev
commit 58cb7bb9e314406b30414b4198cba9d0d13256cb
Author: Ian Lake <ilake@google.com>
Date: Mon Feb 25 15:33:39 2019
Fix popUpTo with the root graph ID of 0
All navigation nodes must have a valid ID
*except* the root of the navigation graph, which
can have a ID of 0. We should still be able to
popUpTo the root of the graph by using
popUpTo on a navigate() option, so we need to change
the default value from 0 to -1.
Test: new NavControllerTest
Fixes: 126251695
Change-Id: Iac3ac25abdb91562753db25ff09d23bec7f46292
M navigation/common/ktx/src/main/java/androidx/navigation/NavOptionsBuilder.kt
M navigation/common/src/main/java/androidx/navigation/NavOptions.java
M navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
Description
Version used: 1.0.0-beta01
Devices/Android versions reproduced on:
This is a feature request.
TL;DR: Please make exact URI matches the highest priority for deep link resolution.
Currently, the navigation library places higher priority on the deep link matches with the highest number of placeholders.
Example:
Given deep links:
* deep link 1: uri="hostname/page.html"
* deep link 2: uri="hostname/{username}"
The second deep link will match even when the uri is actually "hostname/page.html".
Ian Lake suggested (in ASG) that the following might be a further refinement of the deep link resolution algorithm: "exact matches > multiple placeholders > single placeholder > partial match". This would make it possible to resolve the URIs correctly in the above example.