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-rc01
I recently worked on an app with package name 'in.bitotsav', and used navigation architecture component to implement a single activity structure. I had been using safeargs using
apply plugin: "androidx.navigation.safeargs"
But just now, I discovered the availability of "androidx.navigation.safeargs.kotlin", so I tried applying it. But it leads to compilation error due to the 'in' part of the package name not being escaped in the generated code, for statements like:
override fun getActionId(): Int = in.bitotsav.R.id.action_global_destEventDetail
and
fun actionDestLoginToDestRegistration(): NavDirections =
ActionOnlyNavDirections(in.bitotsav.R.id.action_destLogin_to_destRegistration)
This can be fixed if the 'in' is escaped with backticks, as:
override fun getActionId(): Int = `in`.bitotsav.R.id.action_global_destEventDetail
This is also what is done by android studio in imports.
Version Info:
minSdkVersion 21
targetSdkVersion 28
Android Studio 3.5 Canary 3
Build #AI-183.5153.38.35.5256920, built on January 24, 2019
JRE: 1.8.0_152-release-1248-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.20.8-arch1-1-ARCH