Fixed
Status Update
Comments
pr...@google.com <pr...@google.com>
ap...@google.com <ap...@google.com> #2
As a workaround, your Fragment can set the arguments to an empty Bundle if it is null:
if (arguments == null) {
arguments = Bundle()
}
// Assuming myArgs is set via by navArgs()
val myArg = myArgs.myArg
if (arguments == null) {
arguments = Bundle()
}
// Assuming myArgs is set via by navArgs()
val myArg = myArgs.myArg
jb...@google.com <jb...@google.com>
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d8c9982a9cac54247134252eea8d8a4cbf757e74
Author: Ian Lake <ilake@google.com>
Date: Fri Mar 15 13:21:12 2019
Avoid sending a null Bundle when NavArguments are present
When using arguments with android:defaultValue="@null",
these attributes are dropped by XmlPullParser, so the
NavArgument does not have a default value set. Change
addInDefaultArgs() to always return a non-null Bundle
if there are NavArguments set at all to ensure that
Safe Args can correctly parse the empty Bundle and
fill in the correct default values.
This also simplifies the process if you're not using
Safe Args since you can requireArguments() and the
proper gets with your default values.
Test: new AddInDefaultArgsTest parameterized test
Fixes: 128531879
Change-Id: I6ec9673100790df03b5aa1d86f74dbec70173095
A navigation/common/src/androidTest/java/androidx/navigation/AddInDefaultArgsTest.kt
M navigation/common/src/main/java/androidx/navigation/NavDestination.java
https://android-review.googlesource.com/930456
https://goto.google.com/android-sha1/d8c9982a9cac54247134252eea8d8a4cbf757e74
Branch: androidx-master-dev
commit d8c9982a9cac54247134252eea8d8a4cbf757e74
Author: Ian Lake <ilake@google.com>
Date: Fri Mar 15 13:21:12 2019
Avoid sending a null Bundle when NavArguments are present
When using arguments with android:defaultValue="@null",
these attributes are dropped by XmlPullParser, so the
NavArgument does not have a default value set. Change
addInDefaultArgs() to always return a non-null Bundle
if there are NavArguments set at all to ensure that
Safe Args can correctly parse the empty Bundle and
fill in the correct default values.
This also simplifies the process if you're not using
Safe Args since you can requireArguments() and the
proper gets with your default values.
Test: new AddInDefaultArgsTest parameterized test
Fixes: 128531879
Change-Id: I6ec9673100790df03b5aa1d86f74dbec70173095
A navigation/common/src/androidTest/java/androidx/navigation/AddInDefaultArgsTest.kt
M navigation/common/src/main/java/androidx/navigation/NavDestination.java
Description
Component used: Navigation
Version used: 2.9.0-alpha06
As of Navigation 2.9.0-alpha05, Navigation artifacts have started shipping KMP artifacts.
It would be helpful if the
navigation-testing
artifact was also moved to KMP and used the new SavedState KMP APIs in SavedState 1.3.That would allow APIs like the that generates a
SavedStateHandle()
factorySavedStateHandle
from a@Serializable
class to be able to be used injvmTest
, avoiding the need of using Robolectric or an Android device at all.