Status Update
Comments
ma...@google.com <ma...@google.com>
sh...@gmail.com <sh...@gmail.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
ma...@google.com <ma...@google.com> #3
Hello. No updated to share yet, sorry
[Deleted User] <[Deleted User]> #4
li...@gmail.com <li...@gmail.com> #5
li...@gmail.com <li...@gmail.com> #6
initialValue = BottomSheetValue.Collapsed,
confirmStateChange = {
it != BottomSheetValue.Collapsed
})
val sheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = sheetState
)
jo...@google.com <jo...@google.com> #7
Hi, nothing to share yet. We will update this issue when we get to it!
be...@gmail.com <be...@gmail.com> #8
jo...@ifood.com.br <jo...@ifood.com.br> #9
[Deleted User] <[Deleted User]> #10
wk...@gmail.com <wk...@gmail.com> #11
hello. I solved the problem and want to share it with a comment. The cause of the problem is that swipeable and nestedScroll are used at the same time in BottomSheetScaffold. Even if sheetGesturesEnabled param is passed to swipeable, gestures are operated by nestedScroll. So anyway, if sheetGesturesEnabled is false, nestedScroll is a meaningless modifier, so it doesn't have to be included in the modifier tree.
The problem was solved by forking BottomSheetScaffold and using nestedScroll as follows. It would be nice to refer to it from the google team.
private fun Modifier.nestedScrollIfSheetGesturesEnabled(
connection: NestedScrollConnection,
dispatcher: NestedScrollDispatcher? = null,
sheetGesturesEnabled: Boolean = true;
): Modifier {
return this.let {
if (sheetGesturesEnabled) {
it.nestedScroll(connection, dispatcher)
} else {
it
}
}
}
ap...@google.com <ap...@google.com> #12
Branch: androidx-main
commit 7c9f451aeab809245bc55678568421e12c857ca9
Author: Jossi Wolf <jossiwolf@google.com>
Date: Fri Mar 31 09:32:55 2023
[M2] Disable BottomSheetScaffold nested scroll when gesturesDisabled
Test: bottomSheetScaffold_gesturesDisabled_doesNotParticipateInNestedScroll
Relnote: `BottomSheetScaffold` will not participate in nested scroll anymore when `gesturesEnabled` is set to `false`.
Fixes: 215403277
Change-Id: I634f33bf0d7e6b4dea5d2225c8e7561b74a42d40
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/BottomSheetScaffoldTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
jo...@google.com <jo...@google.com> #13
Thanks! Had this locally for a few months but never got around to writing the test. This should be included in one or two releases from now.
qd...@gmail.com <qd...@gmail.com> #14
When can I upload the production environment
pr...@google.com <pr...@google.com> #15
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material:material:1.5.0-alpha03
de...@gmail.com <de...@gmail.com> #16
ya...@gmail.com <ya...@gmail.com> #17
jo...@gmail.com <jo...@gmail.com> #18
Only commenting because this issue still exists.
jo...@toyrocketscience.com <jo...@toyrocketscience.com> #19
The similar issue exists in material3 modal BottomSheet, there should be a functionality where swiping down of bottomsheet should be disabled but it should be allowed to dismiss it by clicking outside or by back button.
+1 I also stumbled over this. Is there a place where we can add this as a feature request?
be...@gmail.com <be...@gmail.com> #20
og...@gmail.com <og...@gmail.com> #21
EDIT:: OOOOOOOO IM SO SORRY. I DIDN'T SEE @OptIn(ExperimentalMaterial3Api::class).
LOOKS LIKE A SIMPLE COMPONENT WILL BE RELEASE IN 2030 or 2050 ???? . Sorry MY BAD !!
Description
Steps to Reproduce
BottomSheetScaffold
withsheetGesturesEnabled
set to false like the following:MyContent()
likeLazyColumn
with aModifier
set to.fillMaxSize()
Expectation
The BottomSheet swipe to close gesture of the BottomSheet should be disabled but I should still be able to scroll inside the scrollable content.
Actual
I can still close the bottom sheet via swipe to close or to be more specific via swiping down the bottom sheet. However, the content inside is also scrollable as expected.
Further thoughts
It seems like that a scrollable component as content for the bottom sheet overrides the
sheetGesturesEnabled
setting.