Status Update
Comments
lu...@google.com <lu...@google.com>
je...@google.com <je...@google.com> #2
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
jb...@google.com <jb...@google.com> #3
Safeargs still needs AndroidComponentsExtension
to get the applicationID from the variants (7.2.0-alpha05
remove the extension?
je...@google.com <je...@google.com> #4
it moved to a different package : com.android.build.api.variant
jb...@google.com <jb...@google.com> #5
Safeargs still relies on AGP 4.2
. We need some of the BaseVariant
APIs to have replacements before we can upgrade to 7.0+
(
je...@google.com <je...@google.com> #6
The BaseVariant API are deprecated but still available in 7.x, so you should be able to release a newer version that uses the new package and still relies on the old API you require. Or am I missing something ?
jb...@google.com <jb...@google.com> #7
I'll try updating to the latest stable to see if we run into any issues. I can check to make sure changing the package name in 7.2.0-alpha05 works, but we would need it to be stable before we could do a release with this change.
cj...@gmail.com <cj...@gmail.com> #8
FYI this also breaks the latest Studio (2021.1.1 Beta 5)/AGP (7.1.0-beta05) beta where com.android.build.api.extension.AndroidComponentsExtension
has been removed.
Is there a particular reason why
As it stands, no one can upgrade either AGP/Studio Beta or Canary and take advantage of fixes in the latest versions because Navigation still uses the old AGP APIs.
ti...@gmail.com <ti...@gmail.com> #9
Was this fixed in Studio 2021.1.1 RC 1?
jb...@google.com <jb...@google.com> #11
This will be fixed in the Navigation Safe Args 2.5.0-alpha01
and 2.4.1
versions. You can follow the
cj...@gmail.com <cj...@gmail.com> #12
Thank you! 2.4.1 is at least two weeks out (possibly 4, if I'm not mistaken).
I applaud the AGPs team decision to stick to the new APIs though. Hopefully its not too long before Navigation fixes this.
ro...@gmail.com <ro...@gmail.com> #13
So we are talking mid february ?
jb...@google.com <jb...@google.com>
de...@google.com <de...@google.com> #14
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Dolphin Canary 5 (2021.3.1.5)
- Android Gradle Plugin 7.3.0-alpha05
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
zo...@gmail.com <zo...@gmail.com> #15
Is this included in the Dolphin Beta 1 build? 7.3.0-beta01?
I'm able to consistent reproduce this when having the namespace
field setup in my gradle file. Removing it (and adding the value back to the Manifest files) does not cause the issue. Not sure if the same case here, or a new one.
ro...@gmail.com <ro...@gmail.com> #16
May be related to this one ?
xo...@google.com <xo...@google.com> #17
Right, the direct incompatibility between AGP and Safe Args is fixed, I believe, but there's another issue related to the use of applicationId
vs namespace
, tracking at
Description
Build: AI-212.5457.46.2112.7905983, 202111111328,
AI-212.5457.46.2112.7905983, JRE 11.0.12+0-b1504.28-7817840x64 JetBrains s.r.o., OS Linux(amd64) v5.13.0-21-generic, screens 2560.0x1440.0, 1080.0x1920.0
AS: Chipmunk | 2021.2.1 Canary 5; Kotlin plugin: 212-1.5.31-release-556-AS4638.7; Android Gradle Plugin: 7.0.3; Gradle: 7.2; Gradle JDK: version 13.0.2; NDK: from local.properties: (not specified), latest from SDK: (not found); LLDB: pinned revision 3.1 not found, latest from SDK: (package not found); CMake: from local.properties: (not specified), latest from SDK: (not found), from PATH: (not found)
Updating Android Gradle Plug-in from 7.2.0-alpha04 to 7.2.0-alpha05 breaks the build as the Safe Args plug-in no longer works.
This project uses AGP 7.2.0-alpha04 and after changing to 7.2.0-alpha05 it fails to build:
Stack trace attached.