mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Restore overlay when user cancel the dragging
This commit is contained in:
committed by
Benoit Marty
parent
e496bc38ad
commit
dfda13ac20
+9
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user