Fixed
Status Update
Comments
ma...@google.com <ma...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit dce95f0a931da95ad38e24c94d3496241e0c1954
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Wed Jan 26 19:38:35 2022
Support content types in Lazy grids
Relnote: You can now specify the content type for the items of LazyVerticalGrid - item/items functions on LazyGridScope now accept such parameter. Providing such information helps item composition reusing logic to make it more efficiently and only reuse the content between the items of similar type.
Fixes: 215372836
Test: LazyGridSlotsReuseTest
Change-Id: I7b3550cf626b6ef6f65029b1e55465266bfacb18
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyGrid.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridItemsProviderImpl.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridScopeImpl.kt
A compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/grid/LazyGridSlotsReuseTest.kt
https://android-review.googlesource.com/1960712
Branch: androidx-main
commit dce95f0a931da95ad38e24c94d3496241e0c1954
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Wed Jan 26 19:38:35 2022
Support content types in Lazy grids
Relnote: You can now specify the content type for the items of LazyVerticalGrid - item/items functions on LazyGridScope now accept such parameter. Providing such information helps item composition reusing logic to make it more efficiently and only reuse the content between the items of similar type.
Fixes: 215372836
Test: LazyGridSlotsReuseTest
Change-Id: I7b3550cf626b6ef6f65029b1e55465266bfacb18
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyGrid.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridItemsProviderImpl.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridScopeImpl.kt
A compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/grid/LazyGridSlotsReuseTest.kt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit bac224c07d3f114ef8c38b840536a8e45f17317b
Author: Matvei Malkov <malkov@google.com>
Date: Tue Feb 09 18:33:34 2021
Remove AnimationEndReason from swipeable and its users and remove AnimationEndReason.Interrupted
Interruption is signalled with CancellationException is suspend, therefore we don't need this reason.
Without AnamationReason.Interrupted we don't really need to return it from swipeable.
Change-Id: I2cbbc6112cef6e750c10843846ee46cb9d077b03
Relnote: AnimationEndReason.Interrupted is removed. CancellationException will be throws if animation is interrupted.
Fixes: 179695417
Test: fixed
M compose/animation/animation-core/api/current.txt
M compose/animation/animation-core/api/public_plus_experimental_current.txt
M compose/animation/animation-core/api/restricted_current.txt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/AnimationEndReason.kt
M compose/material/material/api/current.txt
M compose/material/material/api/public_plus_experimental_current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
https://android-review.googlesource.com/1581665
Branch: androidx-main
commit bac224c07d3f114ef8c38b840536a8e45f17317b
Author: Matvei Malkov <malkov@google.com>
Date: Tue Feb 09 18:33:34 2021
Remove AnimationEndReason from swipeable and its users and remove AnimationEndReason.Interrupted
Interruption is signalled with CancellationException is suspend, therefore we don't need this reason.
Without AnamationReason.Interrupted we don't really need to return it from swipeable.
Change-Id: I2cbbc6112cef6e750c10843846ee46cb9d077b03
Relnote: AnimationEndReason.Interrupted is removed. CancellationException will be throws if animation is interrupted.
Fixes: 179695417
Test: fixed
M compose/animation/animation-core/api/current.txt
M compose/animation/animation-core/api/public_plus_experimental_current.txt
M compose/animation/animation-core/api/restricted_current.txt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/AnimationEndReason.kt
M compose/material/material/api/current.txt
M compose/material/material/api/public_plus_experimental_current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
Description
Per offline discussion, Matvei and I agreed that throwing
CancellationException
inswipeable
when the suspendanimateTo
is canceled would be more consistent with developer expectation, therefore less error-prone.Giving this issue a high-priority since it involves API change.
Matvei, could you please remove
Interrupted
fromAnimationEndReason
API as you implement the proposed cancellation handling? :)