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