Restore overlay when user cancel the dragging
This commit is contained in:
parent
f55da9027b
commit
5e506be062
2 changed files with 12 additions and 0 deletions
|
|
@ -27,6 +27,7 @@ fun MediaViewerFlickToDismiss(
|
||||||
onDismiss: () -> Unit,
|
onDismiss: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
onDragging: () -> Unit = {},
|
onDragging: () -> Unit = {},
|
||||||
|
onResetting: () -> Unit = {},
|
||||||
content: @Composable BoxScope.() -> Unit,
|
content: @Composable BoxScope.() -> Unit,
|
||||||
) {
|
) {
|
||||||
val flickState = rememberFlickToDismissState(dismissThresholdRatio = 0.1f, rotateOnDrag = false)
|
val flickState = rememberFlickToDismissState(dismissThresholdRatio = 0.1f, rotateOnDrag = false)
|
||||||
|
|
@ -37,6 +38,7 @@ fun MediaViewerFlickToDismiss(
|
||||||
onDismiss()
|
onDismiss()
|
||||||
},
|
},
|
||||||
onDragging = onDragging,
|
onDragging = onDragging,
|
||||||
|
onResetting = onResetting,
|
||||||
)
|
)
|
||||||
FlickToDismiss(
|
FlickToDismiss(
|
||||||
state = flickState,
|
state = flickState,
|
||||||
|
|
@ -50,9 +52,11 @@ private fun DismissFlickEffects(
|
||||||
flickState: FlickToDismissState,
|
flickState: FlickToDismissState,
|
||||||
onDismissing: suspend (Duration) -> Unit,
|
onDismissing: suspend (Duration) -> Unit,
|
||||||
onDragging: suspend () -> Unit,
|
onDragging: suspend () -> Unit,
|
||||||
|
onResetting: suspend () -> Unit,
|
||||||
) {
|
) {
|
||||||
val currentOnDismissing by rememberUpdatedState(onDismissing)
|
val currentOnDismissing by rememberUpdatedState(onDismissing)
|
||||||
val currentOnDragging by rememberUpdatedState(onDragging)
|
val currentOnDragging by rememberUpdatedState(onDragging)
|
||||||
|
val currentOnResetting by rememberUpdatedState(onResetting)
|
||||||
|
|
||||||
when (val gestureState = flickState.gestureState) {
|
when (val gestureState = flickState.gestureState) {
|
||||||
is FlickToDismissState.GestureState.Dismissing -> {
|
is FlickToDismissState.GestureState.Dismissing -> {
|
||||||
|
|
@ -65,6 +69,11 @@ private fun DismissFlickEffects(
|
||||||
currentOnDragging()
|
currentOnDragging()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is FlickToDismissState.GestureState.Resetting -> {
|
||||||
|
LaunchedEffect(Unit) {
|
||||||
|
currentOnResetting()
|
||||||
|
}
|
||||||
|
}
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -290,6 +290,9 @@ private fun MediaViewerPage(
|
||||||
onDragging = {
|
onDragging = {
|
||||||
currentOnShowOverlayChange(false)
|
currentOnShowOverlayChange(false)
|
||||||
},
|
},
|
||||||
|
onResetting = {
|
||||||
|
currentOnShowOverlayChange(true)
|
||||||
|
},
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
) {
|
) {
|
||||||
val downloadedMedia by data.downloadedMedia
|
val downloadedMedia by data.downloadedMedia
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue