diff --git a/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/CrashActivity.kt b/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/CrashActivity.kt index f38f24624..bd549263e 100644 --- a/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/CrashActivity.kt +++ b/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/CrashActivity.kt @@ -73,9 +73,9 @@ import ru.tech.imageresizershrinker.core.ui.theme.ImageToolboxTheme import ru.tech.imageresizershrinker.core.ui.theme.White import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.copyToClipboard -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.ToastHost import ru.tech.imageresizershrinker.core.ui.widget.other.rememberToastHostState diff --git a/core/resources/src/main/res/values-ru/strings.xml b/core/resources/src/main/res/values-ru/strings.xml index acf5adbbb..6f2eb73bd 100644 --- a/core/resources/src/main/res/values-ru/strings.xml +++ b/core/resources/src/main/res/values-ru/strings.xml @@ -522,4 +522,14 @@ Ближайший Базовый Значение по умолчанию + Линейная (или билинейная, в двух измерениях) интерполяция обычно подходит для изменения размера изображения, но вызывает нежелательное размытие деталей и все еще может быть немного зазубренной + Лучшие методы масштабирования включают метод Ланцоша и фильтры Митчелла-Нетравали + Один из более простых способов увеличения размера, заменяющий каждый пиксель определенным количеством пикселей того же цвета + Простейший режим масштабирования Android, используемый практически во всех приложениях + Метод для плавной интерполяции и пересэмплирования набора контрольных точек, широко используемый в компьютерной графике для создания плавных кривых + Оконная функция, часто применяемая в обработке сигналов для минимизации утечки спектра и улучшения точности анализа частот путем заострения краев сигнала + Математический метод интерполяции, использующий значения и производные на конечных точках сегмента кривой для создания плавной и непрерывной кривой + Метод пересэмплирования, поддерживающий высококачественную интерполяцию с использованием взвешенной функции sinc для значений пикселей + Метод пересэмплирования, использующий свертку с настраиваемыми параметрами для достижения баланса между четкостью и сглаживанием в измененном изображении + Использует кусочно-заданные полиномиальные функции для плавной интерполяции и приближения кривой или поверхности, обеспечивая гибкое и непрерывное представление формы \ No newline at end of file diff --git a/core/resources/src/main/res/values/strings.xml b/core/resources/src/main/res/values/strings.xml index 852f05f09..08613b037 100644 --- a/core/resources/src/main/res/values/strings.xml +++ b/core/resources/src/main/res/values/strings.xml @@ -541,4 +541,15 @@ Spline Basic Default Value + Linear (or bilinear, in two dimensions) interpolation is typically good for changing the size of an image, but causes some undesirable softening of details and can still be somewhat jagged + Better scaling methods include Lanczos resampling and Mitchell-Netravali filters + One of the simpler ways of increasing the size, replacing every pixel with a number of pixels of the same color + Simplest android scaling mode that used in almost all apps + Method for smoothly interpolating and resampling a set of control points, commonly used in computer graphics to create smooth curves + Windowing function often applied in signal processing to minimize spectral leakage and improve the accuracy of frequency analysis by tapering the edges of a signal + Mathematical interpolation technique that uses the values and derivatives at the endpoints of a curve segment to generate a smooth and continuous curve + Resampling method that maintains high-quality interpolation by applying a weighted sinc function to the pixel values + Resampling method that use a convolution filter with adjustable parameters to achieve a balance between sharpness and anti-aliasing in the scaled image + Utilizes piecewise-defined polynomial functions to smoothly interpolate and approximate a curve or surface, flexible and continuous shape representation + \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/BottomButtonsBlock.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/BottomButtonsBlock.kt index 4cbcdf9e2..4adc39de5 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/BottomButtonsBlock.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/BottomButtonsBlock.kt @@ -29,7 +29,6 @@ import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedButton.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedButton.kt similarity index 99% rename from core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedButton.kt rename to core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedButton.kt index 17e78932e..0b6369517 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedButton.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedButton.kt @@ -1,4 +1,4 @@ -package ru.tech.imageresizershrinker.core.ui.widget.controls +package ru.tech.imageresizershrinker.core.ui.widget.buttons import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateDpAsState diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedChip.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedChip.kt new file mode 100644 index 000000000..fd759ea0b --- /dev/null +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedChip.kt @@ -0,0 +1,83 @@ +package ru.tech.imageresizershrinker.core.ui.widget.buttons + +import androidx.compose.animation.animateColorAsState +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.LocalContentColor +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.contentColorFor +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.compositeOver +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.widget.modifier.container + +@Composable +fun EnhancedChip( + selected: Boolean, + onClick: () -> Unit, + contentPadding: PaddingValues = PaddingValues(6.dp), + selectedColor: Color, + shape: Shape = MaterialTheme.shapes.small, + label: @Composable () -> Unit +) { + val haptics = LocalHapticFeedback.current + val color by animateColorAsState( + if (selected) selectedColor + else MaterialTheme.colorScheme.secondaryContainer.copy(alpha = 0.6f) + ) + val contentColor by animateColorAsState( + if (selected) MaterialTheme.colorScheme.contentColorFor(selectedColor) + else MaterialTheme.colorScheme.onSurface + ) + + CompositionLocalProvider( + LocalTextStyle provides MaterialTheme.typography.labelLarge.copy( + fontWeight = FontWeight.SemiBold, + color = contentColor + ), + LocalContentColor provides contentColor + ) { + Box( + modifier = Modifier + .defaultMinSize(36.dp, 36.dp) + .container( + color = color, + resultPadding = 0.dp, + borderColor = if (!selected) MaterialTheme.colorScheme.outlineVariant() + else selectedColor + .copy(alpha = 0.9f) + .compositeOver(Color.Black), + shape = shape, + autoShadowElevation = 0.5.dp + ) + .clickable { + haptics.performHapticFeedback( + HapticFeedbackType.LongPress + ) + onClick() + }, + contentAlignment = Alignment.Center + ) { + Box( + modifier = Modifier.padding(contentPadding), + contentAlignment = Alignment.Center + ) { + label() + } + } + } +} \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButton.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButton.kt similarity index 98% rename from core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButton.kt rename to core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButton.kt index 53fea72c2..64cf49153 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButton.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButton.kt @@ -1,4 +1,4 @@ -package ru.tech.imageresizershrinker.core.ui.widget.controls +package ru.tech.imageresizershrinker.core.ui.widget.buttons import androidx.compose.animation.core.animateDpAsState import androidx.compose.foundation.interaction.MutableInteractionSource diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButtonType.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButtonType.kt similarity index 92% rename from core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButtonType.kt rename to core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButtonType.kt index 2dcc7f0f9..02ba0228e 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/EnhancedFloatingActionButtonType.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/EnhancedFloatingActionButtonType.kt @@ -1,4 +1,4 @@ -package ru.tech.imageresizershrinker.core.ui.widget.controls +package ru.tech.imageresizershrinker.core.ui.widget.buttons import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.graphics.Shape diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/SupportingButton.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/SupportingButton.kt new file mode 100644 index 000000000..6b0cff773 --- /dev/null +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/buttons/SupportingButton.kt @@ -0,0 +1,56 @@ +package ru.tech.imageresizershrinker.core.ui.widget.buttons + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Info +import androidx.compose.material3.Icon +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.contentColorFor +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.unit.dp + +@Composable +fun SupportingButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + icon: ImageVector = Icons.Outlined.Info, + containerColor: Color = MaterialTheme.colorScheme.secondaryContainer, + contentColor: Color = MaterialTheme.colorScheme.contentColorFor(containerColor) +) { + val haptics = LocalHapticFeedback.current + Icon( + imageVector = icon, + contentDescription = null, + tint = contentColor, + modifier = modifier + .background( + color = containerColor, + shape = CircleShape + ) + .clip(CircleShape) + .clickable { + haptics.performHapticFeedback( + HapticFeedbackType.TextHandleMove + ) + onClick() + } + .padding(1.dp) + .size( + with(LocalDensity.current) { + LocalTextStyle.current.fontSize.toDp() + } + ) + ) +} \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/AvailableColorTuplesSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/AvailableColorTuplesSheet.kt index 0af9e898f..5942fc5bf 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/AvailableColorTuplesSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/AvailableColorTuplesSheet.kt @@ -67,7 +67,7 @@ import ru.tech.imageresizershrinker.core.ui.shapes.MaterialStarShape import ru.tech.imageresizershrinker.core.ui.theme.defaultColorTuple import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.ListUtils.nearestFor -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSliderItem import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorInfo.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorInfo.kt index eb864d481..a54fd64ef 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorInfo.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorInfo.kt @@ -50,8 +50,8 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.inverse import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.copyToClipboard import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.pasteColorFromClipboard -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorSelectionRow.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorSelectionRow.kt index 7ce02bd49..d578f7399 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorSelectionRow.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorSelectionRow.kt @@ -39,7 +39,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.inverse -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.fadingEdges import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePicker.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePicker.kt index de48210c2..9c2b1cfcc 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePicker.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePicker.kt @@ -42,7 +42,7 @@ import com.t8rin.dynamic.theme.rememberAppColorTuple import com.t8rin.dynamic.theme.rememberColorScheme import kotlinx.coroutines.delay import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ExtensionGroup.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ExtensionGroup.kt index 90aede901..6ec9869d5 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ExtensionGroup.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ExtensionGroup.kt @@ -3,37 +3,30 @@ package ru.tech.imageresizershrinker.core.ui.widget.controls import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.SizeTransform -import androidx.compose.animation.animateColorAsState import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.togetherWith -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ProvideTextStyle import androidx.compose.material3.Text import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.compositeOver -import androidx.compose.ui.hapticfeedback.HapticFeedbackType -import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -41,7 +34,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.domain.model.ImageFormat import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedChip import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @OptIn(ExperimentalLayoutApi::class) @@ -62,8 +55,6 @@ fun ExtensionGroup( if (value !in entries) onValueChange(ImageFormat.Png) } - val haptics = LocalHapticFeedback.current - ProvideTextStyle( value = TextStyle( color = if (!enabled) disColor @@ -106,21 +97,22 @@ fun ExtensionGroup( modifier = Modifier .fillMaxWidth() .padding(8.dp) - .container() + .container( + color = MaterialTheme.colorScheme.surfaceContainerLow + ) .padding(horizontal = 8.dp, vertical = 12.dp) ) { items.forEach { - Chip( + EnhancedChip( onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) onValueChange(it) }, selected = it == value, label = { Text(text = it.title) - } + }, + selectedColor = MaterialTheme.colorScheme.tertiary, + contentPadding = PaddingValues(horizontal = 16.dp, vertical = 6.dp) ) } } @@ -135,47 +127,4 @@ private fun List.filtered(): List = remember(this) { removeAll(ImageFormat.highLevelFormats) } else this -} - -@Composable -private fun Chip( - selected: Boolean, - onClick: () -> Unit, - label: @Composable () -> Unit -) { - val color by animateColorAsState( - if (selected) MaterialTheme.colorScheme.tertiary - else MaterialTheme.colorScheme.secondaryContainer.copy(alpha = 0.6f) - ) - - CompositionLocalProvider( - LocalTextStyle provides MaterialTheme.typography.labelLarge.copy( - fontWeight = FontWeight.SemiBold, - color = if (selected) MaterialTheme.colorScheme.onTertiary - else MaterialTheme.colorScheme.onSurface - ), - ) { - Box( - modifier = Modifier - .container( - color = color, - resultPadding = 0.dp, - borderColor = if (!selected) MaterialTheme.colorScheme.outlineVariant() - else MaterialTheme.colorScheme.tertiary - .copy(alpha = 0.9f) - .compositeOver(Color.Black), - shape = MaterialTheme.shapes.small, - autoShadowElevation = 0.5.dp - ) - .clickable(onClick = onClick), - contentAlignment = Alignment.Center - ) { - Box( - modifier = Modifier.padding(horizontal = 16.dp, vertical = 6.dp), - contentAlignment = Alignment.Center - ) { - label() - } - } - } } \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageReorderCarousel.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageReorderCarousel.kt index 8ab26f933..8502f3786 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageReorderCarousel.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageReorderCarousel.kt @@ -50,6 +50,8 @@ import org.burnoutcrew.reorderable.detectReorderAfterLongPress import org.burnoutcrew.reorderable.rememberReorderableLazyListState import org.burnoutcrew.reorderable.reorderable import ru.tech.imageresizershrinker.core.resources.R +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageTransformBar.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageTransformBar.kt index ad4ce3a2f..a3fbbce44 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageTransformBar.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ImageTransformBar.kt @@ -34,6 +34,8 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Transparency import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.theme.onMixedContainer +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/PresetWidget.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/PresetWidget.kt index ae7593133..fbfcf3830 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/PresetWidget.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/PresetWidget.kt @@ -3,9 +3,6 @@ package ru.tech.imageresizershrinker.core.ui.widget.controls -import androidx.compose.animation.animateColorAsState -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -13,27 +10,22 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Info import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon -import androidx.compose.material3.LocalContentColor -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -41,13 +33,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.compositeOver -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -57,9 +43,12 @@ import ru.tech.imageresizershrinker.core.domain.model.Preset import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.icons.material.Telegram -import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedChip +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.SupportingButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.fadingEdges @@ -118,25 +107,10 @@ fun PresetWidget( fontWeight = FontWeight.Medium ) Spacer(modifier = Modifier.width(8.dp)) - Icon( - imageVector = Icons.Outlined.Info, - contentDescription = null, - tint = MaterialTheme.colorScheme.onSecondaryContainer, - modifier = Modifier - .background( - MaterialTheme.colorScheme.secondaryContainer, - CircleShape - ) - .clip(CircleShape) - .clickable { - showPresetInfoDialog = true - } - .padding(1.dp) - .size( - with(LocalDensity.current) { - LocalTextStyle.current.fontSize.toDp() - } - ) + SupportingButton( + onClick = { + showPresetInfoDialog = true + } ) } Spacer(Modifier.height(8.dp)) @@ -159,23 +133,25 @@ fun PresetWidget( if (includeTelegramOption) { item { val selected = selectedPreset.isTelegram() - Chip( + EnhancedChip( selected = selected, - onClick = { onPresetSelected(Preset.Telegram) } + onClick = { onPresetSelected(Preset.Telegram) }, + selectedColor = MaterialTheme.colorScheme.primary, + shape = MaterialTheme.shapes.medium ) { Icon(Icons.Rounded.Telegram, null) } } } - data.forEach { - item { - val selected = selectedPreset.value() == it - Chip( - selected = selected, - onClick = { onPresetSelected(Preset.Numeric(it)) } - ) { - AutoSizeText(it.toString()) - } + items(data) { + val selected = selectedPreset.value() == it + EnhancedChip( + selected = selected, + onClick = { onPresetSelected(Preset.Numeric(it)) }, + selectedColor = MaterialTheme.colorScheme.primary, + shape = MaterialTheme.shapes.medium + ) { + AutoSizeText(it.toString()) } } } @@ -234,64 +210,4 @@ fun PresetWidget( } ) } -} - -@Composable -private fun Chip( - selected: Boolean, - onClick: () -> Unit, - label: @Composable () -> Unit -) { - val haptics = LocalHapticFeedback.current - val color by animateColorAsState( - if (selected) MaterialTheme.colorScheme.primary - else MaterialTheme.colorScheme.secondaryContainer.copy( - alpha = 0.6f - ) - ) - - CompositionLocalProvider( - LocalTextStyle provides MaterialTheme.typography.labelLarge.copy( - fontWeight = FontWeight.SemiBold, - color = if (selected) MaterialTheme.colorScheme.onTertiary - else MaterialTheme.colorScheme.onSurface - ), - LocalContentColor provides animateColorAsState( - if (selected) MaterialTheme.colorScheme.onPrimary - else MaterialTheme.colorScheme.onSurface - ).value, - ) { - Box( - modifier = Modifier - .defaultMinSize(36.dp, 36.dp) - .container( - color = color, - resultPadding = 0.dp, - borderColor = animateColorAsState( - if (!selected) MaterialTheme.colorScheme.outlineVariant() - else MaterialTheme.colorScheme.primary - .copy( - alpha = 0.9f - ) - .compositeOver(Color.Black) - ).value, - shape = MaterialTheme.shapes.medium, - autoShadowElevation = 0.5.dp - ) - .clickable { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onClick() - }, - contentAlignment = Alignment.Center - ) { - Box( - modifier = Modifier.padding(6.dp), - contentAlignment = Alignment.Center - ) { - label() - } - } - } } \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ScaleModeSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ScaleModeSelector.kt index 6bb238106..efd6c4812 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ScaleModeSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/ScaleModeSelector.kt @@ -1,42 +1,47 @@ package ru.tech.imageresizershrinker.core.ui.widget.controls -import androidx.compose.animation.animateColorAsState -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.LocalTextStyle +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.graphics.compositeOver -import androidx.compose.ui.hapticfeedback.HapticFeedbackType -import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.domain.ImageScaleMode import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedChip +import ru.tech.imageresizershrinker.core.ui.widget.buttons.SupportingButton +import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container +import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet +import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText +import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem import ru.tech.imageresizershrinker.core.ui.widget.utils.LocalSettingsState @OptIn(ExperimentalLayoutApi::class) @@ -47,19 +52,18 @@ fun ScaleModeSelector( shape: Shape = RoundedCornerShape(24.dp), enableItemsCardBackground: Boolean = true, value: ImageScaleMode, + titlePadding: PaddingValues = PaddingValues(top = 8.dp), + titleArrangement: Arrangement.Horizontal = Arrangement.Center, onValueChange: (ImageScaleMode) -> Unit, - title: @Composable ColumnScope.() -> Unit = { + title: @Composable RowScope.() -> Unit = { Text( text = stringResource(R.string.scale_mode), - modifier = Modifier - .fillMaxWidth() - .padding(top = 8.dp), textAlign = TextAlign.Center, fontWeight = FontWeight.Medium ) } ) { - val haptics = LocalHapticFeedback.current + val state = rememberSaveable { mutableStateOf(false) } val items = remember { ImageScaleMode.entries } @@ -79,7 +83,21 @@ fun ScaleModeSelector( ), horizontalAlignment = Alignment.CenterHorizontally ) { - title() + Row( + modifier = Modifier + .fillMaxWidth() + .padding(titlePadding), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = titleArrangement + ) { + title() + Spacer(modifier = Modifier.width(8.dp)) + SupportingButton( + onClick = { + state.value = true + } + ) + } Spacer(modifier = Modifier.height(8.dp)) FlowRow( @@ -97,70 +115,75 @@ fun ScaleModeSelector( .then( if (enableItemsCardBackground) { Modifier - .container() + .container(color = MaterialTheme.colorScheme.surfaceContainerLow) .padding(horizontal = 8.dp, vertical = 12.dp) } else Modifier ) ) { items.forEach { - Chip( + EnhancedChip( onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) onValueChange(it) }, selected = it == value, label = { Text(text = it.title) - } + }, + contentPadding = PaddingValues(horizontal = 16.dp, vertical = 6.dp), + selectedColor = MaterialTheme.colorScheme.secondary ) } } } -} -@Composable -private fun Chip( - selected: Boolean, - onClick: () -> Unit, - label: @Composable () -> Unit -) { - val color by animateColorAsState( - if (selected) MaterialTheme.colorScheme.tertiary - else MaterialTheme.colorScheme.secondaryContainer.copy(alpha = 0.6f) - ) - - CompositionLocalProvider( - LocalTextStyle provides MaterialTheme.typography.labelLarge.copy( - fontWeight = FontWeight.SemiBold, - color = if (selected) MaterialTheme.colorScheme.onTertiary - else MaterialTheme.colorScheme.onSurface - ), - ) { - Box( - modifier = Modifier - .container( - color = color, - resultPadding = 0.dp, - borderColor = if (!selected) MaterialTheme.colorScheme.outlineVariant() - else MaterialTheme.colorScheme.tertiary - .copy(alpha = 0.9f) - .compositeOver(Color.Black), - shape = MaterialTheme.shapes.small, - autoShadowElevation = 0.5.dp - ) - .clickable(onClick = onClick), - contentAlignment = Alignment.Center - ) { - Box( - modifier = Modifier.padding(horizontal = 16.dp, vertical = 6.dp), - contentAlignment = Alignment.Center + SimpleSheet( + sheetContent = { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(4.dp) ) { - label() + items.forEachIndexed { index, item -> + Column( + Modifier + .fillMaxWidth() + .container( + shape = ContainerShapeDefaults.shapeForIndex( + index, + items.size + ), + resultPadding = 0.dp + ) + ) { + TitleItem(text = item.title) + Text( + text = item.subtitle, + modifier = Modifier.padding( + start = 16.dp, + end = 16.dp, + bottom = 16.dp + ), + fontSize = 14.sp, + lineHeight = 18.sp + ) + } + } + } + }, + visible = state, + title = { + TitleItem(text = stringResource(R.string.scale_mode)) + }, + confirmButton = { + EnhancedButton( + containerColor = MaterialTheme.colorScheme.secondaryContainer, + onClick = { state.value = false } + ) { + AutoSizeText(stringResource(R.string.close)) } } - } + ) } private val ImageScaleMode.title: String @@ -177,3 +200,18 @@ private val ImageScaleMode.title: String ImageScaleMode.Spline -> stringResource(id = R.string.spline) else -> stringResource(id = R.string.basic) } + +private val ImageScaleMode.subtitle: String + @Composable + get() = when (this) { + ImageScaleMode.Bilinear -> stringResource(id = R.string.bilinear_sub) + ImageScaleMode.Catmull -> stringResource(id = R.string.catmull_sub) + ImageScaleMode.Bicubic -> stringResource(id = R.string.bicubic_sub) + ImageScaleMode.Hann -> stringResource(id = R.string.hann_sub) + ImageScaleMode.Hermite -> stringResource(id = R.string.hermite_sub) + ImageScaleMode.Lanczos -> stringResource(id = R.string.lanczos_sub) + ImageScaleMode.Mitchell -> stringResource(id = R.string.mitchell_sub) + ImageScaleMode.Nearest -> stringResource(id = R.string.nearest_sub) + ImageScaleMode.Spline -> stringResource(id = R.string.spline_sub) + else -> stringResource(id = R.string.basic_sub) + } diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/AutoEraseBackgroundCard.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/AutoEraseBackgroundCard.kt index 46b54fe1d..c1f2a08e2 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/AutoEraseBackgroundCard.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/AutoEraseBackgroundCard.kt @@ -26,7 +26,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.BuildConfig import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.theme.onMixedContainer -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawModeSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawModeSelector.kt index d7f97b90f..0c47ba8b7 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawModeSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawModeSelector.kt @@ -8,7 +8,6 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.shrinkVertically import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -18,20 +17,16 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.rounded.BlurCircular import androidx.compose.material.icons.rounded.Brush import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SegmentedButton import androidx.compose.material3.SegmentedButtonDefaults @@ -47,11 +42,11 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -64,7 +59,8 @@ import ru.tech.imageresizershrinker.core.ui.icons.material.Cube import ru.tech.imageresizershrinker.core.ui.icons.material.Highlighter import ru.tech.imageresizershrinker.core.ui.icons.material.Laser import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.SupportingButton import ru.tech.imageresizershrinker.core.ui.widget.controls.resize_group.components.BlurRadiusSelector import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @@ -81,6 +77,7 @@ fun DrawModeSelector( value: DrawMode, onValueChange: (DrawMode) -> Unit ) { + val haptics = LocalHapticFeedback.current val state = rememberSaveable { mutableStateOf(false) } val settingsState = LocalSettingsState.current @@ -102,25 +99,10 @@ fun DrawModeSelector( fontWeight = FontWeight.Medium ) Spacer(modifier = Modifier.width(8.dp)) - Icon( - imageVector = Icons.Outlined.Info, - contentDescription = null, - tint = MaterialTheme.colorScheme.onSecondaryContainer, - modifier = Modifier - .background( - MaterialTheme.colorScheme.secondaryContainer, - CircleShape - ) - .clip(CircleShape) - .clickable { - state.value = true - } - .padding(1.dp) - .size( - with(LocalDensity.current) { - LocalTextStyle.current.fontSize.toDp() - } - ) + SupportingButton( + onClick = { + state.value = true + } ) } Box { @@ -144,7 +126,12 @@ fun DrawModeSelector( count = DrawMode.entries.size ) SegmentedButton( - onClick = { onValueChange(item) }, + onClick = { + haptics.performHapticFeedback( + HapticFeedbackType.LongPress + ) + onValueChange(item) + }, selected = selected, icon = {}, border = BorderStroke( diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawPathModeSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawPathModeSelector.kt index 9650f2781..62525ed87 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawPathModeSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/DrawPathModeSelector.kt @@ -3,7 +3,6 @@ package ru.tech.imageresizershrinker.core.ui.widget.controls.draw import androidx.compose.animation.core.animateDpAsState import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -13,21 +12,17 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.rounded.CheckBoxOutlineBlank import androidx.compose.material.icons.rounded.Circle import androidx.compose.material.icons.rounded.RadioButtonUnchecked import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SegmentedButton import androidx.compose.material3.SegmentedButtonDefaults @@ -43,11 +38,11 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -65,7 +60,8 @@ import ru.tech.imageresizershrinker.core.ui.icons.material.LineArrow import ru.tech.imageresizershrinker.core.ui.icons.material.LineDoubleArrow import ru.tech.imageresizershrinker.core.ui.icons.material.Square import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.SupportingButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.materialShadow @@ -82,6 +78,7 @@ fun DrawPathModeSelector( value: DrawPathMode, onValueChange: (DrawPathMode) -> Unit ) { + val haptics = LocalHapticFeedback.current val state = rememberSaveable { mutableStateOf(false) } val settingsState = LocalSettingsState.current @@ -103,25 +100,10 @@ fun DrawPathModeSelector( fontWeight = FontWeight.Medium ) Spacer(modifier = Modifier.width(8.dp)) - Icon( - imageVector = Icons.Outlined.Info, - contentDescription = null, - tint = MaterialTheme.colorScheme.onSecondaryContainer, - modifier = Modifier - .background( - MaterialTheme.colorScheme.secondaryContainer, - CircleShape - ) - .clip(CircleShape) - .clickable { - state.value = true - } - .padding(1.dp) - .size( - with(LocalDensity.current) { - LocalTextStyle.current.fontSize.toDp() - } - ) + SupportingButton( + onClick = { + state.value = true + } ) } Box { @@ -145,7 +127,12 @@ fun DrawPathModeSelector( count = values.size ) SegmentedButton( - onClick = { onValueChange(item) }, + onClick = { + haptics.performHapticFeedback( + HapticFeedbackType.LongPress + ) + onValueChange(item) + }, selected = selected, icon = {}, border = BorderStroke( diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/EraseModeCard.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/EraseModeCard.kt index 5893d788f..a5699c475 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/EraseModeCard.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/draw/EraseModeCard.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Eraser import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceRow @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/resize_group/ResizeTypeSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/resize_group/ResizeTypeSelector.kt index 88a52184a..13883afc9 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/resize_group/ResizeTypeSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/resize_group/ResizeTypeSelector.kt @@ -7,8 +7,6 @@ import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.shrinkVertically -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -16,16 +14,10 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Info -import androidx.compose.material3.Icon -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -38,10 +30,8 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -49,9 +39,10 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.domain.model.ResizeType import ru.tech.imageresizershrinker.core.resources.R +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.SupportingButton import ru.tech.imageresizershrinker.core.ui.widget.buttons.ToggleGroupButton import ru.tech.imageresizershrinker.core.ui.widget.controls.DrawBackgroundSelector -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.controls.resize_group.components.BlurRadiusSelector import ru.tech.imageresizershrinker.core.ui.widget.controls.resize_group.components.UseBlurredBackgroundToggle import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults @@ -113,25 +104,10 @@ fun ResizeTypeSelector( fontWeight = FontWeight.Medium ) Spacer(modifier = Modifier.width(8.dp)) - Icon( - imageVector = Icons.Outlined.Info, - contentDescription = null, - tint = MaterialTheme.colorScheme.onSecondaryContainer, - modifier = Modifier - .background( - MaterialTheme.colorScheme.secondaryContainer, - CircleShape - ) - .clip(CircleShape) - .clickable { - state.value = true - } - .padding(1.dp) - .size( - with(LocalDensity.current) { - LocalTextStyle.current.fontSize.toDp() - } - ) + SupportingButton( + onClick = { + state.value = true + } ) } Spacer(modifier = Modifier.height(8.dp)) diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ExitWithoutSavingDialog.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ExitWithoutSavingDialog.kt index 6d4e894e5..ee07e2798 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ExitWithoutSavingDialog.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ExitWithoutSavingDialog.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ResetDialog.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ResetDialog.kt index 2139ff5d5..23808cdf9 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ResetDialog.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/ResetDialog.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHost diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageCounter.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageCounter.kt index 2d94ee53e..6e6830051 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageCounter.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageCounter.kt @@ -23,8 +23,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/ExpandableItem.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/ExpandableItem.kt index b3dae5ef8..ca9f7aad4 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/ExpandableItem.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/ExpandableItem.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.unit.dp -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/WantCancelLoadingDialog.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/WantCancelLoadingDialog.kt index 79d3d0669..d45d76f3d 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/WantCancelLoadingDialog.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/WantCancelLoadingDialog.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/palette_selection/PaletteStyleSelection.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/palette_selection/PaletteStyleSelection.kt index cc535cb5a..26f00df7d 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/palette_selection/PaletteStyleSelection.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/palette_selection/PaletteStyleSelection.kt @@ -24,7 +24,7 @@ import com.t8rin.dynamic.theme.PaletteStyle import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.icons.material.Swatch -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/CompareSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/CompareSheet.kt index a15201e91..65fdd60df 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/CompareSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/CompareSheet.kt @@ -36,7 +36,7 @@ import com.smarttoolfactory.beforeafter.BeforeAfterImage import com.smarttoolfactory.beforeafter.OverlayStyle import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/EditExifSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/EditExifSheet.kt index 2f7c29b1f..eb25a6cac 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/EditExifSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/EditExifSheet.kt @@ -48,8 +48,8 @@ import androidx.exifinterface.media.ExifInterface import ru.tech.imageresizershrinker.core.domain.image.Metadata import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.helper.ImageUtils.toMap -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItemOverload diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickFontFamilySheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickFontFamilySheet.kt index fa913a80d..e4b410d17 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickFontFamilySheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickFontFamilySheet.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.model.UiFontFam -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.other.FontSelectionItem import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickImageFromUrisSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickImageFromUrisSheet.kt index 7683bd493..76bc043fb 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickImageFromUrisSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/PickImageFromUrisSheet.kt @@ -35,8 +35,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import coil.transform.Transformation import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ProcessImagesPreferenceSheet.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ProcessImagesPreferenceSheet.kt index 8ba83fde1..33430b949 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ProcessImagesPreferenceSheet.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/sheets/ProcessImagesPreferenceSheet.kt @@ -36,7 +36,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.White import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.preferences.screens.BackgroundRemoverPreference 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 7a4598a7d..0d6c5697c 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 @@ -33,7 +33,7 @@ import com.smarttoolfactory.image.zoom.animatedZoom import com.smarttoolfactory.image.zoom.rememberAnimatedZoomState import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueDialog.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueDialog.kt index c4ee07a12..42b6f43ba 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueDialog.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueDialog.kt @@ -28,7 +28,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.domain.utils.trimTrailingZero import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.text.KeyboardFocusHandler import kotlin.math.pow diff --git a/core/ui/src/market/java/ru/tech/imageresizershrinker/core/ui/widget/UpdateSheet.kt b/core/ui/src/market/java/ru/tech/imageresizershrinker/core/ui/widget/UpdateSheet.kt index cc6887e9b..dc54c09af 100644 --- a/core/ui/src/market/java/ru/tech/imageresizershrinker/core/ui/widget/UpdateSheet.kt +++ b/core/ui/src/market/java/ru/tech/imageresizershrinker/core/ui/widget/UpdateSheet.kt @@ -36,7 +36,7 @@ import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.domain.APP_RELEASES import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isInstalledFromPlayStore -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHost import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleDragHandle import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet diff --git a/feature/bytes-resize/src/main/java/ru/tech/imageresizershrinker/feature/bytes_resize/presentation/BytesResizeScreen.kt b/feature/bytes-resize/src/main/java/ru/tech/imageresizershrinker/feature/bytes_resize/presentation/BytesResizeScreen.kt index 7162320e3..9bb26f0ea 100644 --- a/feature/bytes-resize/src/main/java/ru/tech/imageresizershrinker/feature/bytes_resize/presentation/BytesResizeScreen.kt +++ b/feature/bytes-resize/src/main/java/ru/tech/imageresizershrinker/feature/bytes_resize/presentation/BytesResizeScreen.kt @@ -83,7 +83,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.failedToSaveImages import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.PresetWidget diff --git a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/FileCipherScreen.kt b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/FileCipherScreen.kt index 7b5357f71..9de71b184 100644 --- a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/FileCipherScreen.kt +++ b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/FileCipherScreen.kt @@ -105,9 +105,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.confetti.LocalConfettiControll import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.getFileName import ru.tech.imageresizershrinker.core.ui.utils.helper.ImageUtils.fileSize import ru.tech.imageresizershrinker.core.ui.utils.helper.showReview -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDialog import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke @@ -350,7 +350,12 @@ fun FileCipherScreen( val selected = index == if (viewModel.isEncrypt) 0 else 1 SegmentedButton( - onClick = { viewModel.setIsEncrypt(index == 0) }, + onClick = { + haptics.performHapticFeedback( + HapticFeedbackType.LongPress + ) + viewModel.setIsEncrypt(index == 0) + }, border = BorderStroke( width = settingsState.borderWidth, color = MaterialTheme.colorScheme.outlineVariant() diff --git a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/components/CipherTipSheet.kt b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/components/CipherTipSheet.kt index 8f0ef5e67..67a9d09be 100644 --- a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/components/CipherTipSheet.kt +++ b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/components/CipherTipSheet.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/CompareScreen.kt b/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/CompareScreen.kt index 58b087738..211965768 100644 --- a/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/CompareScreen.kt +++ b/feature/compare/src/main/java/ru/tech/imageresizershrinker/feature/compare/presentation/CompareScreen.kt @@ -83,9 +83,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.Picker import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSlider import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.image.ImageNotPickedWidget diff --git a/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/CropScreen.kt b/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/CropScreen.kt index c21559088..3a1d3695c 100644 --- a/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/CropScreen.kt +++ b/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/CropScreen.kt @@ -82,9 +82,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.Picker import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDialog import ru.tech.imageresizershrinker.core.ui.widget.image.ImageNotPickedWidget diff --git a/feature/delete-exif/src/main/java/ru/tech/imageresizershrinker/feature/delete_exif/presentation/DeleteExifScreen.kt b/feature/delete-exif/src/main/java/ru/tech/imageresizershrinker/feature/delete_exif/presentation/DeleteExifScreen.kt index da94b81b6..8325e2509 100644 --- a/feature/delete-exif/src/main/java/ru/tech/imageresizershrinker/feature/delete_exif/presentation/DeleteExifScreen.kt +++ b/feature/delete-exif/src/main/java/ru/tech/imageresizershrinker/feature/delete_exif/presentation/DeleteExifScreen.kt @@ -72,7 +72,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.failedToSaveImages import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDialog import ru.tech.imageresizershrinker.core.ui.widget.image.ImageContainer import ru.tech.imageresizershrinker.core.ui.widget.image.ImageCounter diff --git a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/DrawScreen.kt b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/DrawScreen.kt index 6eb6933f0..9de35bf77 100644 --- a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/DrawScreen.kt +++ b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/DrawScreen.kt @@ -130,9 +130,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.controls.DrawBackgroundSelector -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup diff --git a/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/EraseBackgroundScreen.kt b/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/EraseBackgroundScreen.kt index e54e54f10..b690332e4 100644 --- a/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/EraseBackgroundScreen.kt +++ b/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/EraseBackgroundScreen.kt @@ -95,8 +95,8 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.Picker import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/FiltersScreen.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/FiltersScreen.kt index 0a62ed420..a3a996c69 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/FiltersScreen.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/FiltersScreen.kt @@ -111,9 +111,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.QualityWidget import ru.tech.imageresizershrinker.core.ui.widget.controls.SaveExifWidget diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddEditMaskSheet.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddEditMaskSheet.kt index 48c5e665b..285b7c649 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddEditMaskSheet.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddEditMaskSheet.kt @@ -85,8 +85,8 @@ import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.theme.onMixedContainer import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.state.update -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.controls.draw.BrushSoftnessSelector diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFilterButton.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFilterButton.kt index a72ae9a9b..7fd33fe67 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFilterButton.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFilterButton.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton @Composable fun AddFilterButton( diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFiltersSheet.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFiltersSheet.kt index 86db1b854..8244ae9a8 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFiltersSheet.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/AddFiltersSheet.kt @@ -75,8 +75,8 @@ import ru.tech.imageresizershrinker.core.filters.presentation.model.UiFilter import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Cube import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.SimplePicture import ru.tech.imageresizershrinker.core.ui.widget.image.imageStickyHeader import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterItem.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterItem.kt index ed13bbf49..ece21512c 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterItem.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterItem.kt @@ -46,7 +46,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.widget.color_picker.ColorSelectionRow import ru.tech.imageresizershrinker.core.ui.widget.color_picker.ColorSelectionRowDefaults -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSlider import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.RoundedTextField diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterReorderSheet.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterReorderSheet.kt index 44fece104..9693a4a70 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterReorderSheet.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/FilterReorderSheet.kt @@ -27,7 +27,7 @@ import org.burnoutcrew.reorderable.rememberReorderableLazyListState import org.burnoutcrew.reorderable.reorderable import ru.tech.imageresizershrinker.core.filters.presentation.model.UiFilter import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskItem.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskItem.kt index fd013453b..9c42d2474 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskItem.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskItem.kt @@ -44,8 +44,8 @@ import ru.tech.imageresizershrinker.core.filters.presentation.model.toUiFilter import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.ExpandableItem diff --git a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskReorderSheet.kt b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskReorderSheet.kt index fd95cc767..a6f98b116 100644 --- a/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskReorderSheet.kt +++ b/feature/filters/src/main/java/ru/tech/imageresizershrinker/feature/filters/presentation/components/MaskReorderSheet.kt @@ -26,7 +26,7 @@ import org.burnoutcrew.reorderable.detectReorderAfterLongPress import org.burnoutcrew.reorderable.rememberReorderableLazyListState import org.burnoutcrew.reorderable.reorderable import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem diff --git a/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/GeneratePaletteScreen.kt b/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/GeneratePaletteScreen.kt index e8f368e8c..abedfca69 100644 --- a/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/GeneratePaletteScreen.kt +++ b/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/GeneratePaletteScreen.kt @@ -84,8 +84,8 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.utils.helper.toHex import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.ImageNotPickedWidget import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke diff --git a/feature/image-preview/src/main/java/ru/tech/imageresizershrinker/feature/image_preview/presentation/ImagePreviewScreen.kt b/feature/image-preview/src/main/java/ru/tech/imageresizershrinker/feature/image_preview/presentation/ImagePreviewScreen.kt index 6a95508e3..e8f8305fc 100644 --- a/feature/image-preview/src/main/java/ru/tech/imageresizershrinker/feature/image_preview/presentation/ImagePreviewScreen.kt +++ b/feature/image-preview/src/main/java/ru/tech/imageresizershrinker/feature/image_preview/presentation/ImagePreviewScreen.kt @@ -42,8 +42,8 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.helper.Picker import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.ImageNotPickedWidget import ru.tech.imageresizershrinker.core.ui.widget.image.LazyImagesGrid import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke diff --git a/feature/image-stitch/src/main/java/ru/tech/imageresizershrinker/feature/image_stitch/presentation/ImageStitchingScreen.kt b/feature/image-stitch/src/main/java/ru/tech/imageresizershrinker/feature/image_stitch/presentation/ImageStitchingScreen.kt index 689c3445d..3a62e8e4e 100644 --- a/feature/image-stitch/src/main/java/ru/tech/imageresizershrinker/feature/image_stitch/presentation/ImageStitchingScreen.kt +++ b/feature/image-stitch/src/main/java/ru/tech/imageresizershrinker/feature/image_stitch/presentation/ImageStitchingScreen.kt @@ -76,7 +76,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock import ru.tech.imageresizershrinker.core.ui.widget.controls.DrawBackgroundSelector -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageReorderCarousel import ru.tech.imageresizershrinker.core.ui.widget.controls.QualityWidget diff --git a/feature/limits-resize/src/main/java/ru/tech/imageresizershrinker/feature/limits_resize/presentation/LimitsResizeScreen.kt b/feature/limits-resize/src/main/java/ru/tech/imageresizershrinker/feature/limits_resize/presentation/LimitsResizeScreen.kt index 647797cd1..60320d53a 100644 --- a/feature/limits-resize/src/main/java/ru/tech/imageresizershrinker/feature/limits_resize/presentation/LimitsResizeScreen.kt +++ b/feature/limits-resize/src/main/java/ru/tech/imageresizershrinker/feature/limits_resize/presentation/LimitsResizeScreen.kt @@ -74,7 +74,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.failedToSaveImages import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.QualityWidget import ru.tech.imageresizershrinker.core.ui.widget.controls.ResizeImageField diff --git a/feature/load-net-image/src/main/java/ru/tech/imageresizershrinker/feature/load_net_image/presentation/LoadNetImageScreen.kt b/feature/load-net-image/src/main/java/ru/tech/imageresizershrinker/feature/load_net_image/presentation/LoadNetImageScreen.kt index f4570e92e..ce144b727 100644 --- a/feature/load-net-image/src/main/java/ru/tech/imageresizershrinker/feature/load_net_image/presentation/LoadNetImageScreen.kt +++ b/feature/load-net-image/src/main/java/ru/tech/imageresizershrinker/feature/load_net_image/presentation/LoadNetImageScreen.kt @@ -87,8 +87,8 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.ImageUtils.toBitmap import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.widget.buttons.ToggleGroupButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AppExitDialog.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AppExitDialog.kt index 697380d91..9d06b3a0e 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AppExitDialog.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AppExitDialog.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.findActivity -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder @Composable diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AuthorLinksSheet.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AuthorLinksSheet.kt index e21098913..cc26306e4 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AuthorLinksSheet.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/AuthorLinksSheet.kt @@ -26,7 +26,7 @@ import ru.tech.imageresizershrinker.core.domain.AUTHOR_TG import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Github import ru.tech.imageresizershrinker.core.ui.icons.material.Telegram -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/DonateSheet.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/DonateSheet.kt index cec662905..1f6a65e50 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/DonateSheet.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/DonateSheet.kt @@ -44,7 +44,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.TONSpaceColor import ru.tech.imageresizershrinker.core.ui.theme.USDTColor import ru.tech.imageresizershrinker.core.ui.theme.inverse import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.copyToClipboard -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHost import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EditPresetsSheet.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EditPresetsSheet.kt index 7e5b90a97..51a21afa3 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EditPresetsSheet.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EditPresetsSheet.kt @@ -1,17 +1,14 @@ package ru.tech.imageresizershrinker.feature.main.presentation.components import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.animateColorAsState import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.togetherWith -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState @@ -24,13 +21,10 @@ import androidx.compose.material.icons.rounded.AddCircle import androidx.compose.material.icons.rounded.PhotoSizeSelectSmall import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon -import androidx.compose.material3.LocalContentColor -import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -39,18 +33,16 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.compositeOver import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.core.text.isDigitsOnly import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedChip +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder -import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem @@ -93,24 +85,29 @@ fun EditPresetsSheet( verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.CenterVertically) ) { list.forEach { - Chip( + EnhancedChip( onClick = { updatePresets(list - it) }, - selected = false + selected = false, + selectedColor = MaterialTheme.colorScheme.primary, + shape = MaterialTheme.shapes.medium ) { AutoSizeText(it.toString()) } } var expanded by remember { mutableStateOf(false) } - Chip( + EnhancedChip( onClick = { expanded = true }, - selected = false - ) { - Icon(Icons.Rounded.AddCircle, null) - } + selected = false, + selectedColor = MaterialTheme.colorScheme.primary, + shape = MaterialTheme.shapes.medium, + label = { + Icon(Icons.Rounded.AddCircle, null) + } + ) if (expanded) { var value by remember { mutableStateOf("") } AlertDialog( @@ -192,58 +189,4 @@ fun EditPresetsSheet( } } ) -} - -@Composable -private fun Chip( - selected: Boolean, - onClick: () -> Unit, - label: @Composable () -> Unit -) { - val color by animateColorAsState( - if (selected) MaterialTheme.colorScheme.primary - else MaterialTheme.colorScheme.secondaryContainer.copy( - alpha = 0.6f - ) - ) - - CompositionLocalProvider( - LocalTextStyle provides MaterialTheme.typography.labelLarge.copy( - fontWeight = FontWeight.SemiBold, - color = if (selected) MaterialTheme.colorScheme.onTertiary - else MaterialTheme.colorScheme.onSurface - ), - LocalContentColor provides animateColorAsState( - if (selected) MaterialTheme.colorScheme.onPrimary - else MaterialTheme.colorScheme.onSurface - ).value, - ) { - Box( - modifier = Modifier - .defaultMinSize(36.dp, 36.dp) - .container( - color = color, - resultPadding = 0.dp, - borderColor = animateColorAsState( - if (!selected) MaterialTheme.colorScheme.outlineVariant() - else MaterialTheme.colorScheme.primary - .copy( - alpha = 0.9f - ) - .compositeOver(Color.Black) - ).value, - autoShadowElevation = 0.5.dp, - shape = MaterialTheme.shapes.medium - ) - .clickable(onClick = onClick), - contentAlignment = Alignment.Center - ) { - Box( - modifier = Modifier.padding(6.dp), - contentAlignment = Alignment.Center - ) { - label() - } - } - } } \ No newline at end of file diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EmojiSheet.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EmojiSheet.kt index 1e2e0be08..55512d470 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EmojiSheet.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/EmojiSheet.kt @@ -45,8 +45,8 @@ import ru.tech.imageresizershrinker.core.ui.icons.emoji.EmojiData import ru.tech.imageresizershrinker.core.ui.icons.emoji.EmojiItem import ru.tech.imageresizershrinker.core.ui.shapes.CloverShape import ru.tech.imageresizershrinker.core.ui.theme.blend -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleDragHandle diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FabPreview.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FabPreview.kt index f497ed818..352359ff3 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FabPreview.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FabPreview.kt @@ -37,7 +37,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.shapes.CloverShape -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.autoElevatedBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.containerFabBorder import ru.tech.imageresizershrinker.core.ui.widget.utils.LocalSettingsState diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FirstLaunchSetupDialog.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FirstLaunchSetupDialog.kt index e127edab0..dab6b0e87 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FirstLaunchSetupDialog.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/FirstLaunchSetupDialog.kt @@ -32,7 +32,7 @@ import ru.tech.imageresizershrinker.core.resources.BuildConfig import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Beta import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isInstalledFromPlayStore -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.fadingEdges import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/JxlWarning.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/JxlWarning.kt index b88b48e3f..38c1047d7 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/JxlWarning.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/JxlWarning.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource import ru.tech.imageresizershrinker.core.resources.BuildConfig import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.Jxl -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.utils.LocalSettingsState diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainScreen.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainScreen.kt index db0bd45fd..03c8d0254 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainScreen.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainScreen.kt @@ -126,9 +126,9 @@ import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isInstalledFromPlayStore import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke import ru.tech.imageresizershrinker.core.ui.widget.modifier.pulsate diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/PermissionDialog.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/PermissionDialog.kt index eac7a2525..3866df282 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/PermissionDialog.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/PermissionDialog.kt @@ -20,7 +20,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.findActivity import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.needToShowStoragePermissionRequest import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.requestStoragePermission -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.utils.LocalSettingsState diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ChangeLanguageSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ChangeLanguageSettingItem.kt index e72ae1576..ff6de61e0 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ChangeLanguageSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ChangeLanguageSettingItem.kt @@ -41,7 +41,7 @@ import org.xmlpull.v1.XmlPullParser import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceRow import ru.tech.imageresizershrinker.core.ui.widget.sheets.SimpleSheet import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/DefaultScaleModeSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/DefaultScaleModeSettingItem.kt index 3647365c4..9ee93a09c 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/DefaultScaleModeSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/DefaultScaleModeSettingItem.kt @@ -1,6 +1,7 @@ package ru.tech.imageresizershrinker.feature.main.presentation.components.settings -import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width @@ -11,7 +12,6 @@ import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape import androidx.compose.ui.res.stringResource @@ -40,20 +40,16 @@ fun DefaultScaleModeSettingItem( alpha = 0.2f ), enableItemsCardBackground = false, + titlePadding = PaddingValues(16.dp), + titleArrangement = Arrangement.Start, title = { - Row( - modifier = Modifier.padding(16.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Icon(Icons.Outlined.Numbers, null) - Spacer(modifier = Modifier.width(16.dp)) - Text( - text = stringResource(R.string.default_value), - modifier = Modifier.weight(1f), - style = LocalTextStyle.current.copy(lineHeight = 18.sp), - fontWeight = FontWeight.Medium - ) - } + Icon(Icons.Outlined.Numbers, null) + Spacer(modifier = Modifier.width(16.dp)) + Text( + text = stringResource(R.string.default_value), + style = LocalTextStyle.current.copy(lineHeight = 18.sp), + fontWeight = FontWeight.Medium + ) } ) } \ No newline at end of file diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/EmojiSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/EmojiSettingItem.kt index d27ff7d41..0795efe28 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/EmojiSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/EmojiSettingItem.kt @@ -27,7 +27,7 @@ import ru.tech.imageresizershrinker.core.ui.icons.emoji.allIconsCategorized import ru.tech.imageresizershrinker.core.ui.icons.material.Cool import ru.tech.imageresizershrinker.core.ui.shapes.CloverShape import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenamePrefixSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenamePrefixSettingItem.kt index 290ec4db1..e6f4fcbf6 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenamePrefixSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenamePrefixSettingItem.kt @@ -29,7 +29,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.icons.material.Prefix import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenameSuffixSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenameSuffixSettingItem.kt index 76b53879c..2403a7f74 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenameSuffixSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/FilenameSuffixSettingItem.kt @@ -29,7 +29,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.icons.material.Suffix import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.alertDialogBorder import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ScreenOrderSettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ScreenOrderSettingItem.kt index 0a7239ec6..f78c6c57a 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ScreenOrderSettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/ScreenOrderSettingItem.kt @@ -38,7 +38,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.icons.material.CreateAlt import ru.tech.imageresizershrinker.core.ui.icons.material.Stacks import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHost import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItem diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/SettingItem.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/SettingItem.kt index 4de339ab7..afe719319 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/SettingItem.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/settings/SettingItem.kt @@ -19,7 +19,7 @@ import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.confetti.LocalConfettiController import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isInstalledFromPlayStore -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHost import ru.tech.imageresizershrinker.core.ui.widget.other.showError diff --git a/feature/pdf-tools/src/main/java/ru/tech/imageresizershrinker/feature/pdf_tools/presentation/PdfToolsScreen.kt b/feature/pdf-tools/src/main/java/ru/tech/imageresizershrinker/feature/pdf_tools/presentation/PdfToolsScreen.kt index d33399aec..c530b8734 100644 --- a/feature/pdf-tools/src/main/java/ru/tech/imageresizershrinker/feature/pdf_tools/presentation/PdfToolsScreen.kt +++ b/feature/pdf-tools/src/main/java/ru/tech/imageresizershrinker/feature/pdf_tools/presentation/PdfToolsScreen.kt @@ -111,9 +111,9 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.utils.helper.showReview import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageReorderCarousel import ru.tech.imageresizershrinker.core.ui.widget.controls.PresetWidget diff --git a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/PickColorFromImageScreen.kt b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/PickColorFromImageScreen.kt index 04e05cd91..561f24f7f 100644 --- a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/PickColorFromImageScreen.kt +++ b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/PickColorFromImageScreen.kt @@ -87,8 +87,8 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.utils.helper.toHex import ru.tech.imageresizershrinker.core.ui.utils.navigation.LocalNavController import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedFloatingActionButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedFloatingActionButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.image.ImageNotPickedWidget diff --git a/feature/resize-convert/src/main/java/ru/tech/imageresizershrinker/feature/resize_convert/presentation/ResizeAndConvertScreen.kt b/feature/resize-convert/src/main/java/ru/tech/imageresizershrinker/feature/resize_convert/presentation/ResizeAndConvertScreen.kt index 6046b389a..f13d41725 100644 --- a/feature/resize-convert/src/main/java/ru/tech/imageresizershrinker/feature/resize_convert/presentation/ResizeAndConvertScreen.kt +++ b/feature/resize-convert/src/main/java/ru/tech/imageresizershrinker/feature/resize_convert/presentation/ResizeAndConvertScreen.kt @@ -84,7 +84,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.Picker import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageTransformBar import ru.tech.imageresizershrinker.core.ui.widget.controls.PresetWidget diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/SingeEditScreen.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/SingeEditScreen.kt index a2be27364..c17ff4b4d 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/SingeEditScreen.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/SingeEditScreen.kt @@ -80,7 +80,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.localImagePickerMode import ru.tech.imageresizershrinker.core.ui.utils.helper.parseSaveResult import ru.tech.imageresizershrinker.core.ui.utils.helper.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.buttons.BottomButtonsBlock -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.ExtensionGroup import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageExtraTransformBar import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageTransformBar diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/CropEditOption.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/CropEditOption.kt index a4609b63d..876c243c4 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/CropEditOption.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/CropEditOption.kt @@ -42,7 +42,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.domain.model.DomainAspectRatio import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.modifier.autoElevatedBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke import ru.tech.imageresizershrinker.core.ui.widget.other.Loading diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/DrawEditOption.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/DrawEditOption.kt index b7d6b84aa..12728a17e 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/DrawEditOption.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/DrawEditOption.kt @@ -58,7 +58,7 @@ import ru.tech.imageresizershrinker.core.ui.model.UiPathPaint import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.theme.onMixedContainer import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.controls.draw.BrushSoftnessSelector diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/EraseBackgroundEditOption.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/EraseBackgroundEditOption.kt index ee0653f20..faf4a219b 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/EraseBackgroundEditOption.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/EraseBackgroundEditOption.kt @@ -55,7 +55,7 @@ import ru.tech.imageresizershrinker.core.ui.model.PtSaver import ru.tech.imageresizershrinker.core.ui.model.UiPathPaint import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.confetti.LocalConfettiController -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitch import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedSwitchDefaults import ru.tech.imageresizershrinker.core.ui.widget.controls.draw.AutoEraseBackgroundCard diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FilterEditOption.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FilterEditOption.kt index b9fbdd090..0b7cc7553 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FilterEditOption.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FilterEditOption.kt @@ -57,8 +57,8 @@ import ru.tech.imageresizershrinker.core.domain.image.Transformation import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.utils.helper.ImageUtils.toBitmap -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.autoElevatedBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FullscreenEditOption.kt b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FullscreenEditOption.kt index 0142fb22c..da94b3447 100644 --- a/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FullscreenEditOption.kt +++ b/feature/single-edit/src/main/java/ru/tech/imageresizershrinker/feature/single_edit/presentation/components/FullscreenEditOption.kt @@ -45,7 +45,7 @@ import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.unit.dp import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant -import ru.tech.imageresizershrinker.core.ui.widget.controls.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.buttons.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDialog import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke