Fixed
Status Update
Comments
je...@gmail.com <je...@gmail.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
https://android-review.googlesource.com/1360099
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
ap...@google.com <ap...@google.com> #3
Project: platform/prebuilts/androidx/external
Branch: androidx-main
commit be7c55cd7fb9f2a8fd34d845b3d6488180d2debb
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Aug 18 00:55:54 2021
Add prebuilts for Parcelizable and Serializable
Added dependencies for Parcelizable and Serializable for use with kotlin
1.5.21.
Need these for new navigation samples.
Test: ./gradlew bOS
Bug: 196871885
Change-Id: I25c6ea6cd7e91055cb1afb5e56575fa6377a0f8c
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom.sha1
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom.md5
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom.sha1
https://android-review.googlesource.com/1798313
Branch: androidx-main
commit be7c55cd7fb9f2a8fd34d845b3d6488180d2debb
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Aug 18 00:55:54 2021
Add prebuilts for Parcelizable and Serializable
Added dependencies for Parcelizable and Serializable for use with kotlin
1.5.21.
Need these for new navigation samples.
Test: ./gradlew bOS
Bug: 196871885
Change-Id: I25c6ea6cd7e91055cb1afb5e56575fa6377a0f8c
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.5.21/kotlin-android-extensions-runtime-1.5.21.pom.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-parcelize-compiler/1.5.21/kotlin-parcelize-compiler-1.5.21.pom.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/LICENSE
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21-sources.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.jar.sha1
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom.md5
A org/jetbrains/kotlin/kotlin-parcelize-runtime/1.5.21/kotlin-parcelize-runtime-1.5.21.pom.sha1
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom.md5
A org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.5.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.5.21.pom.sha1
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 031b876e5666f8510238f5e7484ddfb55cf5177e
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Aug 18 01:03:48 2021
Make NavType constructor public
Making NavType constructor public so that it will be possible for
developers to extend it to create custom types.
RelNote: "It is now possible to extend the NavType class to create
custom NavTypes. Custom types are supported only when building your
navigation graph programmatically, such as via the
[Navigation Graph Kotlin DSL](/guide/navigation/navigation-kotlin-dsl)."
Test: ./gradlew checkApi
Bug: 196871885
Change-Id: I78440758311840441dd785cfaed6795fff2b56da
M navigation/navigation-common/api/current.txt
M navigation/navigation-common/api/public_plus_experimental_current.txt
M navigation/navigation-common/api/restricted_current.txt
M navigation/navigation-common/src/main/java/androidx/navigation/NavType.kt
https://android-review.googlesource.com/1798823
Branch: androidx-main
commit 031b876e5666f8510238f5e7484ddfb55cf5177e
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Aug 18 01:03:48 2021
Make NavType constructor public
Making NavType constructor public so that it will be possible for
developers to extend it to create custom types.
RelNote: "It is now possible to extend the NavType class to create
custom NavTypes. Custom types are supported only when building your
navigation graph programmatically, such as via the
[Navigation Graph Kotlin DSL](/guide/navigation/navigation-kotlin-dsl)."
Test: ./gradlew checkApi
Bug: 196871885
Change-Id: I78440758311840441dd785cfaed6795fff2b56da
M navigation/navigation-common/api/current.txt
M navigation/navigation-common/api/public_plus_experimental_current.txt
M navigation/navigation-common/api/restricted_current.txt
M navigation/navigation-common/src/main/java/androidx/navigation/NavType.kt
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 9991ffff1c5e98524f90e552865f45b998f507ec
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Aug 16 14:09:33 2021
Make name no longer required by nav type
Only the NavType provided by us actually need names since they are
inflated from XML. Other implemented NavTypes have no need for it so we
should not require it.
RelNote: N/A
Test: ./gradlew checkApi
Bug: 196871885
Change-Id: I3907fa12000fadf558b217f9e95ca10f8daff7e0
M navigation/navigation-common/api/current.txt
M navigation/navigation-common/api/public_plus_experimental_current.txt
M navigation/navigation-common/api/restricted_current.txt
M navigation/navigation-common/src/main/java/androidx/navigation/NavType.kt
https://android-review.googlesource.com/1797191
Branch: androidx-main
commit 9991ffff1c5e98524f90e552865f45b998f507ec
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Aug 16 14:09:33 2021
Make name no longer required by nav type
Only the NavType provided by us actually need names since they are
inflated from XML. Other implemented NavTypes have no need for it so we
should not require it.
RelNote: N/A
Test: ./gradlew checkApi
Bug: 196871885
Change-Id: I3907fa12000fadf558b217f9e95ca10f8daff7e0
M navigation/navigation-common/api/current.txt
M navigation/navigation-common/api/public_plus_experimental_current.txt
M navigation/navigation-common/api/restricted_current.txt
M navigation/navigation-common/src/main/java/androidx/navigation/NavType.kt
jb...@google.com <jb...@google.com> #6
This has been fixed internally and will be available in the Navigation 2.4.0-alpha08
release.
This will allow the creation of custom NavTypes, meaning when using the
Given:
@Serializable
@Parcelize
data class SearchParameters(val searchQuery: String, val filters: List<String>)
A custom NavType could be written as:
class SearchParametersType : NavType<SearchParameters>(
isNullableAllowed = false
) {
override fun put(bundle: Bundle, key: String, value: SearchParameters) {
bundle.putParcelable(key, value)
}
override fun get(bundle: Bundle, key: String): SearchParameters {
return bundle.getParcelable(key) as SearchParameters
}
override fun parseValue(value: String): SearchParameters {
return Json.decodeFromString<SearchParameters>(value)
}
// Only required when using Navigation 2.4.0-alpha07 and lower
override val name = "SearchParameters"
}
This can then be used in your Kotlin DSL like any other type:
fragment<SearchFragment>(nav_routes.plant_search) {
label = getString(R.string.plant_search_title)
argument(nav_arguments.search_parameters) {
type = SearchParametersType
defaultValue = SearchParameters("cactus", emptyList())
}
}
This example uses
val params = SearchParameters("rose", listOf("available"))
val searchArgument = Uri.encode(Json.encodeToString(params))
navController.navigate("${nav_routes.plant_search}/$searchArgument")
The custom NavType:
val params: SearchParameters? = arguments?.getParcelable(nav_arguments.search_parameters)
Description
NavType should not require extended classes to override the
name
property. Name is used exclusively internal forNavInflater
for classes that are inflated from XML. All the types that need to implementname
already do, and custom NavTypes should not have this requirement.Instead of being abstract, the
name
property should default to another string (i.e. "nav_type").