Status Update
Comments
ma...@google.com <ma...@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
co...@google.com <co...@google.com> #3
se...@google.com <se...@google.com> #4
I think it's worth noting in M2 that ModalBottomSheet is a layout while bottomdrawer functions more as a truly modal object, even though it does not have perfect dialog-like functionality. For the usecase recommended (bottom app bar menus), BottomDrawer seems like a better fit than ModalBottomSheetLayout. However in M3 it makes sense to explicitly use ModalBottomSheet once implemented.
Wdyt Matvei?
ma...@google.com <ma...@google.com> #5
I think it's worth noting in M2 that ModalBottomSheet is a layout while bottomdrawer functions more as a truly modal object
Could you comment on that? What's the actual difference in the behaviour?
se...@google.com <se...@google.com> #6
Bottom Drawer is an atomic component that can be placed on top of content on the screen while ModalBottomSheet is a layout that wraps around all the screen content and places accordingly. BottomDrawer is much more of a splashable component in M2 and asking users to migrate BottomDrawer uses may be cumbersome.
ma...@google.com <ma...@google.com> #7
Ok, sounds good. I'm happy to keep it if you think it brings value to m2 users.
If we are not removing it, we need to make it stable in this case.
se...@google.com <se...@google.com>
se...@google.com <se...@google.com> #8
Found some outstanding bugs I will look into before deciding to promote, especially the swipeable migrations which will likely update the API
se...@google.com <se...@google.com> #9
Given the planned work to migrate the swipeable logic of bottomdrawer, this API should remain experimental. Closing for now.
cl...@google.com <cl...@google.com> #10
If these are still experimental, please keep this bug open and just target the next release
se...@google.com <se...@google.com> #11
Where can i find the respective hotlist for the next release?
se...@google.com <se...@google.com>
jo...@google.com <jo...@google.com> #12
Fwiw the major difference between modal sheets and bottom drawer is that the drawer can be opened by swiping on the full container. If we don't intend to introduce a bottom drawer in M3, maybe we can explore how to adapt the ModalBottomSheet API for this feature in the future.
ma...@google.com <ma...@google.com> #13
Bumping to P1 as it is been a long while since we need to land this.
mo...@google.com <mo...@google.com> #14
This is an out-of-SLO bug that is assigned to me. Moving to Matvei to ensure that it is looked at.
ap...@google.com <ap...@google.com> #16
Branch: androidx-main
commit 63b8ceee3645b3d78a2c372f01390937bf14c8bd
Author: Jossi Wolf <jossiwolf@google.com>
Date: Wed Nov 29 15:17:04 2023
[M2] Stabilize BottomDrawer
Relnote: BottomDrawer has been promoted from experimental to stable. BottomDrawerState now exposes the progress as a function, allowing to query progress between specific targets. BottomDrawerState now allows customizing the animation spec, and confirmStateChange is not a trailing lambda anymore.
Fixes: 261423850
Test: Existing tests, bottomDrawer_progress
Change-Id: I9c029340ea69a755ad0cd8f46b8fcdc76422c41c
M compose/material/material/api/current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/src/androidInstrumentedTest/kotlin/androidx/compose/material/DrawerTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
pr...@google.com <pr...@google.com> #17
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material:material:1.7.0-alpha03
androidx.compose.material:material-android:1.7.0-alpha03
androidx.compose.material:material-desktop:1.7.0-alpha03
Description
The following Experimental APIs have existed for several releases.
Please consider stabilising or removing these APIs: