From b9e65f3c9f393fc7350c91a8b85595098f85a238 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sun, 31 Jul 2022 15:11:01 +0200 Subject: [PATCH] Prevent customize sheet to be dismissed by swipe when icon picker is open --- .../de/mm20/launcher2/ui/component/BottomSheetDialog.kt | 6 +++++- .../search/common/customattrs/CustomizeSearchableSheet.kt | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/component/BottomSheetDialog.kt b/ui/src/main/java/de/mm20/launcher2/ui/component/BottomSheetDialog.kt index 90a81082..d86b0a29 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/component/BottomSheetDialog.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/component/BottomSheetDialog.kt @@ -36,13 +36,17 @@ fun BottomSheetDialog( actions: @Composable RowScope.() -> Unit = {}, confirmButton: @Composable (() -> Unit)? = null, dismissButton: @Composable (() -> Unit)? = null, + swipeToDismiss: () -> Boolean = { true }, content: @Composable () -> Unit, ) { val swipeState = remember { SwipeableState( initialValue = SwipeState.Dismiss, confirmStateChange = { - if (it == SwipeState.Dismiss) onDismissRequest() + if (it == SwipeState.Dismiss) { + if (swipeToDismiss()) onDismissRequest() + else return@SwipeableState false + } return@SwipeableState true } ) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/customattrs/CustomizeSearchableSheet.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/customattrs/CustomizeSearchableSheet.kt index 00af6f28..612a2a9d 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/customattrs/CustomizeSearchableSheet.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/customattrs/CustomizeSearchableSheet.kt @@ -47,6 +47,7 @@ fun CustomizeSearchableSheet( title = { Text(stringResource(if (pickIcon) R.string.icon_picker_title else R.string.menu_customize)) }, + swipeToDismiss = { !pickIcon }, confirmButton = { if (pickIcon) { OutlinedButton(onClick = { viewModel.closeIconPicker() }) {