From 306122e3f3c9d90f3b907821ce9695aa5080a05d Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Sun, 24 Jul 2022 16:18:39 +0200 Subject: [PATCH] Fix #128 --- .../vfsfitvnm/vimusic/ui/components/BottomSheet.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt index 7007cc9..f92dc5d 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt @@ -76,6 +76,10 @@ fun BottomSheet( velocityTracker.addPointerInputChange(change) state.dispatchRawDelta(dragAmount) }, + onDragCancel = { + velocityTracker.resetTracking() + state.snapTo(initialValue) + }, onDragEnd = { val velocity = velocityTracker.calculateVelocity().y.absoluteValue velocityTracker.resetTracking() @@ -149,7 +153,7 @@ class BottomSheetState( 1f - (animatable.upperBound!! - animatable.value) / (animatable.upperBound!! - animatable.lowerBound!!) } - fun collapse(animationSpec: AnimationSpec) { + private fun collapse(animationSpec: AnimationSpec) { onWasExpandedChanged(false) coroutineScope.launch { animatable.animateTo(animatable.lowerBound!!, animationSpec) @@ -179,6 +183,12 @@ class BottomSheetState( expand(tween(300)) } + fun snapTo(value: Dp) { + coroutineScope.launch { + animatable.snapTo(value) + } + } + fun nestedScrollConnection(initialIsTopReached: Boolean = true): NestedScrollConnection { return object : NestedScrollConnection { var isTopReached = initialIsTopReached