Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
What about Enums? Enum is a type-safe way to pass navigation arguments.
Will Enums be covered in this issue as part of Serializable or will have own handled separately?
Because for enum you can provide a reasonable default value but for Parcelable or Serializable only @null
Will Enums be covered in this issue as part of Serializable or will have own handled separately?
Because for enum you can provide a reasonable default value but for Parcelable or Serializable only @null
ca...@gmail.com <ca...@gmail.com> #3
Please add support for Serializable objects so Enums can be used.
il...@google.com <il...@google.com> #4
Support of Serializable objects is not enough for enums, you definitely need also the support of default values.
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 6f59e3d74d0da5a4bf79c8480f56964e3af47f1c
Author: Wojtek Kaliciński <wkal@google.com>
Date: Mon Jul 23 20:17:19 2018
Support more types for args
Provides support for Serializable, enums,
as well as arrays of primitive types and Parcelables
in Navigation arguments.
Only enums support default values other than @null,
in the form of the enum literal (without class name),
e.g. app:defaultValue="READ"
Test: unit tests updated
BUG: 111487504
BUG: 111316353
Change-Id: I7e5abbc8ed0950bfdef292342dbe1fb34a5c4b17
M navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
A navigation/runtime/src/androidTest/java/androidx/navigation/test/TestEnum.java
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/main/kotlin/androidx/navigation/safe/args/generator/NavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/Types.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavParserTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavWriterTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_writer_test/MainFragmentArgs.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_writer_test/Next.java
M navigation/safe-args-generator/src/tests/test-data/naive_test.xml
https://android-review.googlesource.com/720246
https://goto.google.com/android-sha1/6f59e3d74d0da5a4bf79c8480f56964e3af47f1c
Branch: androidx-master-dev
commit 6f59e3d74d0da5a4bf79c8480f56964e3af47f1c
Author: Wojtek Kaliciński <wkal@google.com>
Date: Mon Jul 23 20:17:19 2018
Support more types for args
Provides support for Serializable, enums,
as well as arrays of primitive types and Parcelables
in Navigation arguments.
Only enums support default values other than @null,
in the form of the enum literal (without class name),
e.g. app:defaultValue="READ"
Test: unit tests updated
BUG: 111487504
BUG: 111316353
Change-Id: I7e5abbc8ed0950bfdef292342dbe1fb34a5c4b17
M navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
A navigation/runtime/src/androidTest/java/androidx/navigation/test/TestEnum.java
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/main/kotlin/androidx/navigation/safe/args/generator/NavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/Types.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavParserTest.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/NavWriterTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_writer_test/MainFragmentArgs.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_writer_test/Next.java
M navigation/safe-args-generator/src/tests/test-data/naive_test.xml
jb...@google.com <jb...@google.com> #6
This is fixed internally and will be available in 1.0.0-alpha08
ap...@google.com <ap...@google.com> #7
What happened if I declaire app:argType="androidx.navigation.test.TestEnum" and turn on proguard/R8? Because both ProGuard and R8 will optimize trivial enums into ints.
ap...@google.com <ap...@google.com> #8
ap...@google.com <ap...@google.com> #9
Thanks. Just saw the latest documentation.
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: snap-temp-L31300000699869852
commit 998afa5a45306f1096a053e0f9eb275481fe79ab
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
https://android-review.googlesource.com/1436918
Branch: snap-temp-L31300000699869852
commit 998afa5a45306f1096a053e0f9eb275481fe79ab
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
ap...@google.com <ap...@google.com> #11
Project: platform/frameworks/support
Branch: snap-temp-L53700000699921463
commit 0e594474451b1e1a2f6927179c703f1547dbfe7c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
https://android-review.googlesource.com/1436921
Branch: snap-temp-L53700000699921463
commit 0e594474451b1e1a2f6927179c703f1547dbfe7c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: snap-temp-L25200000699921867
commit c9e5aa95317da82d339c362a3dae64a9f331e214
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
https://android-review.googlesource.com/1436925
Branch: snap-temp-L25200000699921867
commit c9e5aa95317da82d339c362a3dae64a9f331e214
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
ap...@google.com <ap...@google.com> #13
Project: platform/frameworks/support
Branch: snap-temp-L07700000699933785
commit f3069dc913eb8d41e6cc3859df5d6ef204fdf18c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
https://android-review.googlesource.com/1436930
Branch: snap-temp-L07700000699933785
commit f3069dc913eb8d41e6cc3859df5d6ef204fdf18c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 23 14:44:52 2020
Keep long arg names from wrapping
When using safe-args with a long argument name, kotlin does an
automatic line wrap at 100 characters which makes it place the argument
return and variable on different lines, which fails.
We should add `·` to emit a space that never wraps.
Test: Added KotlinNavWriterTest
Bug: 168584987
Change-Id: Ibc31f91fd6b1c4a94f0b7c05b9b9679ffa09b625
(cherry picked from commit 766a3ad47da73e1179ce6419693a825c4d665cfd)
M navigation/navigation-safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/navigation-safe-args-generator/src/test/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
A navigation/navigation-safe-args-generator/src/test/test-data/expected/kotlin_nav_writer_test/ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongNameMainFragmentArgs.kt
ma...@syslogic.io <ma...@syslogic.io> #14
Just gotten into a similar situation (the title matches): When calling method getArguments()
in the constructor, it returns null
.
While in public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
it returns the Bundle
Alike this I can obtain the arguments of a DialogFragment
inside a library, which doesn't know about the Navigation at all.
Description
STEPS:
DialogFragment
class calledMyDialog
MyNewDialog
that inherits fromMyDialog
instead ofDialogFragment
(for example, to inherit styles or UI)Now in a XML graph, try to add it and put it some
argument
s:Then, when trying to build the application, it won't compile and the navigation generated code will throw:
However, no problem with
actions
(Why it doesn't throw same error with typeMyNewDialogDirections
??)No problem if we use
MyDialog
(that inherits directly fromDialogFragment
) instead ofMyNewDialog
(that inherits fromMyDialog
and this last, fromDialogFragment