From 26f275ba38cf52156d072cba0a67499d0da77009 Mon Sep 17 00:00:00 2001 From: T8RIN Date: Thu, 15 May 2025 01:54:27 +0300 Subject: [PATCH] UI improvements --- .../presentation/widget/FilterPreviewSheet.kt | 4 +++- .../enhanced/EnhancedModalBottomSheet.kt | 12 +++++------- .../enhanced/EnhancedModalSheetDragHandle.kt | 19 ++++++++++++------- .../core/ui/widget/sheets/ZoomModalSheet.kt | 7 ++++--- .../presentation/components/CompareSheet.kt | 16 ++++++++-------- .../components/PickColorFromImageSheet.kt | 7 +++---- 6 files changed, 35 insertions(+), 30 deletions(-) diff --git a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterPreviewSheet.kt b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterPreviewSheet.kt index 6716da37b..8f9137a68 100644 --- a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterPreviewSheet.kt +++ b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterPreviewSheet.kt @@ -95,7 +95,9 @@ internal fun FilterPreviewSheet( EnhancedModalBottomSheet( dragHandle = { - EnhancedModalSheetDragHandle { + EnhancedModalSheetDragHandle( + showDragHandle = false + ) { EnhancedTopAppBar( type = EnhancedTopAppBarType.Center, drawHorizontalStroke = false, diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalBottomSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalBottomSheet.kt index 4ae53e5a8..55ab11f30 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalBottomSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalBottomSheet.kt @@ -93,7 +93,7 @@ fun EnhancedModalBottomSheet( confirmButton: @Composable RowScope.() -> Unit, dragHandle: @Composable ColumnScope.() -> Unit = { EnhancedModalSheetDragHandle() }, title: @Composable () -> Unit, - endConfirmButtonPadding: Dp = 16.dp, + endConfirmButtonPadding: Dp = 12.dp, visible: Boolean, onDismiss: (Boolean) -> Unit, enableBackHandler: Boolean = true, @@ -117,7 +117,7 @@ fun EnhancedModalBottomSheet( .fillMaxWidth() .drawHorizontalStroke(true, autoElevation = 6.dp) .background(EnhancedBottomSheetDefaults.barContainerColor) - .padding(16.dp) + .padding(8.dp) .navigationBarsPadding() .padding(end = endConfirmButtonPadding), verticalAlignment = Alignment.CenterVertically @@ -163,9 +163,9 @@ fun EnhancedModalBottomSheet( .drawHorizontalStroke(true, autoElevation = 6.dp) .background(EnhancedBottomSheetDefaults.barContainerColor) .navigationBarsPadding() - .padding(16.dp) + .padding(8.dp) .then( - if (enableBottomContentWeight) Modifier.padding(end = 16.dp) + if (enableBottomContentWeight) Modifier.padding(end = 12.dp) else Modifier ), verticalAlignment = Alignment.CenterVertically @@ -271,9 +271,7 @@ private fun EnhancedModalSheetImpl( } } - if (!visible && sheetState.currentValue == sheetState.targetValue && !sheetState.isVisible && !isAnimating) { - return - } + if (!visible && sheetState.currentValue == sheetState.targetValue && !sheetState.isVisible && !isAnimating) return val settingsState = LocalSettingsState.current diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalSheetDragHandle.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalSheetDragHandle.kt index c910371b3..b44c3577b 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalSheetDragHandle.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedModalSheetDragHandle.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -52,6 +53,7 @@ fun EnhancedModalSheetDragHandle( showDragHandle: Boolean = true, bendAngle: Float = 0f, strokeWidth: Dp = EnhancedBottomSheetDefaults.dragHandleHeight, + heightWhenDisabled: Dp = 0.dp, content: @Composable ColumnScope.() -> Unit = {}, ) { val dragHandleWidth = LocalSettingsState.current.dragHandleWidth @@ -67,13 +69,13 @@ fun EnhancedModalSheetDragHandle( .background(color), horizontalAlignment = Alignment.CenterHorizontally ) { - Row( - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 22.dp), - horizontalArrangement = Arrangement.Center - ) { - if (showDragHandle && dragHandleWidth > 0.dp) { + if (showDragHandle && dragHandleWidth > 0.dp) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 22.dp), + horizontalArrangement = Arrangement.Center + ) { BendableDragHandle( width = dragHandleWidth, angleDegrees = bendAngle, @@ -83,7 +85,10 @@ fun EnhancedModalSheetDragHandle( ) ) } + } else { + Spacer(modifier = Modifier.height(heightWhenDisabled)) } + content() } } diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ZoomModalSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ZoomModalSheet.kt index 6ec1ca26e..750bee26b 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ZoomModalSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ZoomModalSheet.kt @@ -141,7 +141,7 @@ fun ZoomModalSheet( } } Row( - modifier = Modifier.padding(16.dp), + modifier = Modifier.padding(8.dp), verticalAlignment = Alignment.CenterVertically ) { TitleItem(text = stringResource(R.string.zoom), icon = Icons.Rounded.ZoomIn) @@ -149,7 +149,7 @@ fun ZoomModalSheet( EnhancedButton( containerColor = MaterialTheme.colorScheme.secondaryContainer, onClick = onDismiss, - modifier = Modifier.padding(horizontal = 16.dp) + modifier = Modifier.padding(horizontal = 12.dp) ) { AutoSizeText(stringResource(R.string.close)) } @@ -167,7 +167,8 @@ fun ZoomModalSheet( dragHandle = { EnhancedModalSheetDragHandle( color = Color.Transparent, - drawStroke = false + drawStroke = false, + heightWhenDisabled = 20.dp ) } ) diff --git a/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/components/CompareSheet.kt b/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/components/CompareSheet.kt index 7876bd16f..3fd08521f 100644 --- a/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/components/CompareSheet.kt +++ b/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/components/CompareSheet.kt @@ -112,8 +112,7 @@ fun CompareSheet( } } Row( - modifier = Modifier - .padding(16.dp), + modifier = Modifier.padding(8.dp), verticalAlignment = Alignment.CenterVertically ) { TitleItem( @@ -124,7 +123,7 @@ fun CompareSheet( EnhancedButton( containerColor = MaterialTheme.colorScheme.secondaryContainer, onClick = onDismiss, - modifier = Modifier.padding(horizontal = 16.dp) + modifier = Modifier.padding(horizontal = 12.dp) ) { AutoSizeText(stringResource(R.string.close)) } @@ -138,7 +137,8 @@ fun CompareSheet( dragHandle = { EnhancedModalSheetDragHandle( color = Color.Transparent, - drawStroke = false + drawStroke = false, + heightWhenDisabled = 20.dp ) } ) @@ -192,8 +192,7 @@ fun CompareSheet( ) } Row( - modifier = Modifier - .padding(16.dp), + modifier = Modifier.padding(8.dp), verticalAlignment = Alignment.CenterVertically ) { TitleItem( @@ -204,7 +203,7 @@ fun CompareSheet( EnhancedButton( containerColor = MaterialTheme.colorScheme.secondaryContainer, onClick = onDismiss, - modifier = Modifier.padding(horizontal = 16.dp) + modifier = Modifier.padding(horizontal = 12.dp) ) { AutoSizeText(stringResource(R.string.close)) } @@ -218,7 +217,8 @@ fun CompareSheet( dragHandle = { EnhancedModalSheetDragHandle( color = Color.Transparent, - drawStroke = false + drawStroke = false, + heightWhenDisabled = 20.dp ) } ) diff --git a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt index f0902bb48..4f97ba065 100644 --- a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt +++ b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt @@ -127,9 +127,7 @@ fun PickColorFromImageSheet( ) Row( - modifier = Modifier - .padding(16.dp) - .padding(horizontal = 16.dp), + modifier = Modifier.padding(16.dp), verticalAlignment = Alignment.CenterVertically ) { Row( @@ -227,7 +225,8 @@ fun PickColorFromImageSheet( dragHandle = { EnhancedModalSheetDragHandle( color = Color.Transparent, - drawStroke = false + drawStroke = false, + heightWhenDisabled = 20.dp ) }, visible = visible,