Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit f82ff94526ccacf57ff23c09a7d1bd56c66c646a
Author: Matvei Malkov <malkov@google.com>
Date: Thu Dec 10 16:11:12 2020
Rework tap-based foundation modifiers
Make clickable, toggleable, selectable to be non-@Composable use suspend pointer input under the hood. To be non-composable and still provide good experience with indication means that we need an overload so devs could choice what paramets to worry about.
Change-Id: I0a130bfa57713c96cc8b52c67becd32145526685
Relnote: "clickable, toggleable and selectable can be created outside of composition now"
Fixes: 172938345
Bug: 175294473
Test: added for overload + exisiting
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/MultiDimensionalAnimationDemo.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/SingleValueAnimationDemo.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/IndicationSamples.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/InteractionStateSample.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ZoomableSample.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ClickableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/IndicationTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/SelectableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ToggleableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TapGestureDetector.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/selection/Selectable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/selection/Toggleable.kt
M compose/integration-tests/benchmark/src/androidTest/java/androidx/ui/pointerinput/ComposeTapIntegrationBenchmark.kt
M compose/material/material/integration-tests/material-studies/src/main/java/androidx/compose/material/studies/rally/TopAppBar.kt
https://android-review.googlesource.com/1544584
Branch: androidx-main
commit f82ff94526ccacf57ff23c09a7d1bd56c66c646a
Author: Matvei Malkov <malkov@google.com>
Date: Thu Dec 10 16:11:12 2020
Rework tap-based foundation modifiers
Make clickable, toggleable, selectable to be non-@Composable use suspend pointer input under the hood. To be non-composable and still provide good experience with indication means that we need an overload so devs could choice what paramets to worry about.
Change-Id: I0a130bfa57713c96cc8b52c67becd32145526685
Relnote: "clickable, toggleable and selectable can be created outside of composition now"
Fixes: 172938345
Bug: 175294473
Test: added for overload + exisiting
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/MultiDimensionalAnimationDemo.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/SingleValueAnimationDemo.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/IndicationSamples.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/InteractionStateSample.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ZoomableSample.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ClickableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/IndicationTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/SelectableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ToggleableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TapGestureDetector.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/selection/Selectable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/selection/Toggleable.kt
M compose/integration-tests/benchmark/src/androidTest/java/androidx/ui/pointerinput/ComposeTapIntegrationBenchmark.kt
M compose/material/material/integration-tests/material-studies/src/main/java/androidx/compose/material/studies/rally/TopAppBar.kt
na...@google.com <na...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit a543757a7c94f91f69b345e5c276f689fdde98b6
Author: Matvei Malkov <malkov@google.com>
Date: Thu Dec 10 18:20:49 2020
Move draggable to suspend input
This CL moves draggable to suspend point while adjusting API slightly to simplify the shape.
Relnote: canDrag parameter has been removed from the Modifier.draggable
Bug: 175294473
Test: already exists, it's an implementation detail change
Change-Id: Ic4bec74b6fb3a9306abe4fdee7c6961ad3a62d77
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/DraggableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SliderTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
https://android-review.googlesource.com/1542884
Branch: androidx-main
commit a543757a7c94f91f69b345e5c276f689fdde98b6
Author: Matvei Malkov <malkov@google.com>
Date: Thu Dec 10 18:20:49 2020
Move draggable to suspend input
This CL moves draggable to suspend point while adjusting API slightly to simplify the shape.
Relnote: canDrag parameter has been removed from the Modifier.draggable
Bug: 175294473
Test: already exists, it's an implementation detail change
Change-Id: Ic4bec74b6fb3a9306abe4fdee7c6961ad3a62d77
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/DraggableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SliderTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
Description
When LazyList items are re-used, the ModifierNodes retain state from the previous item.