Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 8f748086ce8f274f8e6f5b93c68f54ce99234077
Author: Ian Lake <ilake@google.com>
Date: Mon Feb 11 14:56:03 2019
Support "0" as a defaultValue for reference arguments
For arguments of argType="reference", we should
support 0 as a valid defaultValue in cases instead
of requiring a placeholder resource you'll never
actually use.
In Safe Args, we now throw an explicit error if you
use android:defaultValue="@null" for a reference
type, pointing you to use "0".
Test: updated tests
BUG: 124248602
Change-Id: I650c949c2971d781dfcc0fc79b2cbd1551316d13
M navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
M navigation/runtime/src/androidTest/res/navigation/nav_default_arguments.xml
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/NavParser.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/NavParserErrors.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/InvalidXmlTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/JavaNavWriterTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavParserTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/MainFragmentArgs.java
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentArgs.kt
A navigation/safe-args-generator/src/tests/test-data/invalid_xmls/null_default_value_reference.xml
M navigation/safe-args-generator/src/tests/test-data/naive_test.xml
M navigation/safe-args-gradle-plugin/src/test/test-data/app-project-kotlin/src/main/res/navigation/nav_test.xml
M navigation/safe-args-gradle-plugin/src/test/test-data/app-project/src/main/res/navigation/nav_test.xml
https://android-review.googlesource.com/900801
https://goto.google.com/android-sha1/8f748086ce8f274f8e6f5b93c68f54ce99234077
Branch: androidx-master-dev
commit 8f748086ce8f274f8e6f5b93c68f54ce99234077
Author: Ian Lake <ilake@google.com>
Date: Mon Feb 11 14:56:03 2019
Support "0" as a defaultValue for reference arguments
For arguments of argType="reference", we should
support 0 as a valid defaultValue in cases instead
of requiring a placeholder resource you'll never
actually use.
In Safe Args, we now throw an explicit error if you
use android:defaultValue="@null" for a reference
type, pointing you to use "0".
Test: updated tests
BUG: 124248602
Change-Id: I650c949c2971d781dfcc0fc79b2cbd1551316d13
M navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
M navigation/runtime/src/androidTest/res/navigation/nav_default_arguments.xml
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/NavParser.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/NavParserErrors.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/InvalidXmlTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/JavaNavWriterTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavParserTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/MainFragmentArgs.java
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentArgs.kt
A navigation/safe-args-generator/src/tests/test-data/invalid_xmls/null_default_value_reference.xml
M navigation/safe-args-generator/src/tests/test-data/naive_test.xml
M navigation/safe-args-gradle-plugin/src/test/test-data/app-project-kotlin/src/main/res/navigation/nav_test.xml
M navigation/safe-args-gradle-plugin/src/test/test-data/app-project/src/main/res/navigation/nav_test.xml
il...@google.com <il...@google.com> #3
This has been fixed internally and is available in Navigation 1.0.0-beta02
Description
Version used: 1.0.0-beta01
When using an argType="reference" type, only valid resource values are allowed for the android:defaultValue - using @null or 0 doesn't work (both for Safe Args and at runtime).
It would be nice to have a default value available for resource types that would, at runtime, translate to a value of 0. Since would allow you to have optional resource IDs.