From 9553da290446b5931e16c31cf4476b5d2bc94dba Mon Sep 17 00:00:00 2001 From: T8RIN Date: Thu, 9 Jan 2025 06:49:54 +0300 Subject: [PATCH] Improve haptics --- .../FilterSelectionCubeLutBottomContent.kt | 2 +- .../widget/FilterSelectionItem.kt | 2 +- .../widget/TemplateFilterSelectionItem.kt | 2 +- .../widget/addFilters/OtherContent.kt | 2 +- .../provider/ImageToolboxCompositionLocals.kt | 4 +- .../ui/widget/buttons/SupportingButton.kt | 2 +- .../color_picker/AvailableColorTuplesSheet.kt | 2 +- .../core/ui/widget/color_picker/ColorInfo.kt | 10 +-- .../widget/color_picker/ColorSelectionRow.kt | 13 ++-- .../widget/color_picker/ColorTuplePreview.kt | 6 +- .../widget/controls/ImageReorderCarousel.kt | 2 +- .../controls/selection/ColorRowSelector.kt | 13 +--- .../OneTimeSaveLocationSelectionDialog.kt | 8 +- .../core/ui/widget/enhanced/EnhancedChip.kt | 1 - .../EnhancedHapticFeedback.kt} | 74 +++++++++++++++++-- .../ui/widget/enhanced/EnhancedSliderItem.kt | 12 +-- .../ui/widget/image/AspectRatioSelector.kt | 2 +- .../ui/widget/image/ImageNotPickedWidget.kt | 2 +- .../core/ui/widget/image/ImagePreviewGrid.kt | 2 +- .../core/ui/widget/image/UrisPreview.kt | 2 +- .../core/ui/widget/other/ExpandableItem.kt | 19 +---- .../core/ui/widget/other/LinkPreviewCard.kt | 4 +- .../preferences/PreferenceItemOverload.kt | 25 ++----- .../ui/widget/preferences/PreferenceRow.kt | 23 ++---- .../widget/sheets/PickImageFromUrisSheet.kt | 2 +- .../core/ui/widget/value/ValueText.kt | 2 +- .../components/Base64ToolsTiles.kt | 2 +- .../cipher/presentation/CipherContent.kt | 2 +- .../presentation/components/ColorHarmonies.kt | 2 +- .../presentation/components/ColorInfo.kt | 2 +- .../presentation/components/ColorMixing.kt | 2 +- .../presentation/components/ColorShading.kt | 2 +- .../components/CropMaskSelection.kt | 2 +- .../presentation/DocumentScannerContent.kt | 2 +- .../components/DrawLineStyleSelector.kt | 2 +- .../components/OpenColorPickerCard.kt | 2 +- .../presentation/EasterEggContent.kt | 2 +- .../components/AutoEraseBackgroundCard.kt | 2 +- .../components/MaterialYouPaletteItem.kt | 2 +- .../components/ColorStopSelection.kt | 2 +- .../presentation/components/ClickableTile.kt | 2 +- .../components/MarkupLayersSideMenuColumn.kt | 2 +- .../presentation/components/MediaImage.kt | 4 +- .../components/MediaStickyHeader.kt | 22 +++--- .../components/PickColorFromImageSheet.kt | 2 +- .../components/PickColorFromImageTopAppBar.kt | 2 +- .../components/DownloadedLanguageItem.kt | 22 ++---- .../presentation/components/FillableButton.kt | 2 +- .../components/FilterSelectionBar.kt | 2 +- .../components/ModelTypeSelector.kt | 6 +- .../components/OcrEngineModeSelector.kt | 6 +- .../components/SettingsOpenButton.kt | 2 +- .../presentation/ScanQrCodeContent.kt | 2 +- .../ConfettiHarmonizerSettingItem.kt | 2 +- .../components/EmojisCountSettingItem.kt | 2 +- .../components/IconShapeSettingItem.kt | 2 +- .../additional/EmojiSelectionSheet.kt | 2 +- .../components/additional/FabPreview.kt | 2 +- .../components/additional/FontItem.kt | 2 +- .../feature/zip/presentation/ZipContent.kt | 2 +- 60 files changed, 171 insertions(+), 185 deletions(-) rename core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/{haptics/CustomHapticFeedback.kt => enhanced/EnhancedHapticFeedback.kt} (72%) diff --git a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionCubeLutBottomContent.kt b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionCubeLutBottomContent.kt index 56c7f1b14..1f534b8fd 100644 --- a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionCubeLutBottomContent.kt +++ b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionCubeLutBottomContent.kt @@ -88,7 +88,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionItem.kt b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionItem.kt index a1ab31abb..28891a688 100644 --- a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionItem.kt +++ b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/FilterSelectionItem.kt @@ -77,7 +77,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isNetworkAvailable import ru.tech.imageresizershrinker.core.ui.utils.helper.toImageModel import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.shimmer import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHostState diff --git a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/TemplateFilterSelectionItem.kt b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/TemplateFilterSelectionItem.kt index 0c7af08d6..0a975d573 100644 --- a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/TemplateFilterSelectionItem.kt +++ b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/TemplateFilterSelectionItem.kt @@ -65,7 +65,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.White import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.toImageModel import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.shimmer import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceItemOverload diff --git a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/addFilters/OtherContent.kt b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/addFilters/OtherContent.kt index 4056b7d02..73bfaa65d 100644 --- a/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/addFilters/OtherContent.kt +++ b/core/filters/src/main/java/ru/tech/imageresizershrinker/core/filters/presentation/widget/addFilters/OtherContent.kt @@ -67,7 +67,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.buttons.ShareButton import ru.tech.imageresizershrinker.core.ui.widget.controls.selection.ImageSelector import ru.tech.imageresizershrinker.core.ui.widget.dialogs.OneTimeSaveLocationSelectionDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/provider/ImageToolboxCompositionLocals.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/provider/ImageToolboxCompositionLocals.kt index d9cc8c5e7..95b0d2724 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/provider/ImageToolboxCompositionLocals.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/provider/ImageToolboxCompositionLocals.kt @@ -34,7 +34,7 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSim import ru.tech.imageresizershrinker.core.settings.presentation.provider.rememberEditPresetsController import ru.tech.imageresizershrinker.core.ui.utils.confetti.LocalConfettiHostState import ru.tech.imageresizershrinker.core.ui.utils.confetti.rememberConfettiHostState -import ru.tech.imageresizershrinker.core.ui.widget.haptics.rememberCustomHapticFeedback +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.rememberEnhancedHapticFeedback import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHostState import ru.tech.imageresizershrinker.core.ui.widget.other.ToastHostState import ru.tech.imageresizershrinker.core.ui.widget.other.rememberToastHostState @@ -49,7 +49,7 @@ fun ImageToolboxCompositionLocals( val editPresetsController = rememberEditPresetsController() val confettiHostState = rememberConfettiHostState() val context = LocalContext.current - val customHapticFeedback = rememberCustomHapticFeedback(settingsState.hapticsStrength) + val customHapticFeedback = rememberEnhancedHapticFeedback(settingsState.hapticsStrength) val values = remember( toastHostState, 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 index 3f1936522..3c5b0f279 100644 --- 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 @@ -34,7 +34,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.dp -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable @Composable fun SupportingButton( 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 040f70fef..49a5d7f6b 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 @@ -91,7 +91,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalSheetDragHandle import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.palette_selection.PaletteStyleSelection import ru.tech.imageresizershrinker.core.ui.widget.preferences.PreferenceRowSwitch 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 109113c6f..64359bd33 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 @@ -76,7 +76,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.pasteColor import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedAlertDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText @@ -332,12 +332,4 @@ private fun getFormattedColor(color: Int): String { } else { colorToHexAlpha(Color(color)) }.uppercase() -} - -private operator fun String.times(i: Int): String { - var s = "" - repeat(i) { - s += this - } - return s } \ No newline at end of file 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 eebef4651..d93f7b2d0 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 @@ -21,7 +21,6 @@ import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -80,7 +79,8 @@ import ru.tech.imageresizershrinker.core.ui.theme.inverse import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.pasteColorFromClipboard import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.animateShape import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.fadingEdges @@ -167,7 +167,7 @@ fun ColorSelectionRow( ) .transparencyChecker() .background(background, shape) - .combinedClickable( + .hapticsCombinedClickable( onLongClick = { context.pasteColorFromClipboard( onPastedColor = { @@ -183,10 +183,11 @@ fun ColorSelectionRow( } } ) + }, + onClick = { + showColorPicker = true } - ) { - showColorPicker = true - }, + ), contentAlignment = Alignment.Center ) { Icon( diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePreview.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePreview.kt index 2d8cfdbb6..bb384d28f 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePreview.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/color_picker/ColorTuplePreview.kt @@ -21,7 +21,6 @@ import androidx.compose.animation.AnimatedContent import androidx.compose.animation.animateColorAsState import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.aspectRatio @@ -52,6 +51,7 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSet import ru.tech.imageresizershrinker.core.ui.shapes.MaterialStarShape import ru.tech.imageresizershrinker.core.ui.theme.inverse import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @OptIn(ExperimentalFoundationApi::class) @@ -90,9 +90,7 @@ fun ColorTuplePreview( borderColor = MaterialTheme.colorScheme.outlineVariant(0.2f), resultPadding = 0.dp ) - .combinedClickable( - onClick = onClick - ) + .hapticsClickable(onClick = onClick) .padding(3.dp) .clip(CircleShape), backgroundColor = Color.Transparent 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 6e22d0504..dfac5c36d 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 @@ -74,7 +74,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.sortedByType import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/selection/ColorRowSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/selection/ColorRowSelector.kt index cb3c14d20..8b91bae99 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/selection/ColorRowSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/controls/selection/ColorRowSelector.kt @@ -18,7 +18,6 @@ package ru.tech.imageresizershrinker.core.ui.widget.controls.selection import androidx.compose.animation.AnimatedContent -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -46,7 +45,6 @@ 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.input.pointer.pointerInput import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource @@ -60,6 +58,7 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSet import ru.tech.imageresizershrinker.core.ui.shapes.IconShapeContainer 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.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.BoxAnimatedVisibility import ru.tech.imageresizershrinker.core.ui.widget.text.TitleItem @@ -142,7 +141,7 @@ fun ColorRowSelector( }, state = tooltipState, content = { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current IconShapeContainer( enabled = true, content = { @@ -159,17 +158,11 @@ fun ColorRowSelector( LocalSettingsState.current.iconShape?.shape ?: CircleShape ) - .combinedClickable( + .hapticsCombinedClickable( onLongClick = { - haptics.performHapticFeedback( - HapticFeedbackType.TextHandleMove - ) scope.launch { tooltipState.show() } }, onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.TextHandleMove - ) scope.launch { tooltipState.show() } } ) diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt index 7b12789b9..9d3f8cb3f 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt @@ -57,7 +57,6 @@ 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.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource @@ -73,7 +72,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.takeColorFromScheme import ru.tech.imageresizershrinker.core.ui.utils.helper.toUiPath import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedAlertDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.fadingEdges @@ -252,7 +251,7 @@ fun OneTimeSaveLocationSelectionDialog( }, directions = setOf(RevealDirection.EndToStart), swipeableContent = { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current PreferenceItem( title = title, subtitle = subtitle, @@ -266,9 +265,6 @@ fun OneTimeSaveLocationSelectionDialog( }, onLongClick = if (item != null) { { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) scope.launch { state.animateTo(RevealValue.FullyRevealedStart) } diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedChip.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedChip.kt index a987aedf9..9c3068c7a 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedChip.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedChip.kt @@ -41,7 +41,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.provider.LocalContainerShape -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/haptics/CustomHapticFeedback.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedHapticFeedback.kt similarity index 72% rename from core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/haptics/CustomHapticFeedback.kt rename to core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedHapticFeedback.kt index 9b58c91cb..11c3bb8f2 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/haptics/CustomHapticFeedback.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedHapticFeedback.kt @@ -1,6 +1,6 @@ /* * ImageToolbox is an image editor for android - * Copyright (c) 2024 T8RIN (Malik Mukhametzyanov) + * Copyright (c) 2025 T8RIN (Malik Mukhametzyanov) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ @file:Suppress("DEPRECATION") -package ru.tech.imageresizershrinker.core.ui.widget.haptics +package ru.tech.imageresizershrinker.core.ui.widget.enhanced import android.annotation.SuppressLint import android.content.Context @@ -28,6 +28,7 @@ import android.view.accessibility.AccessibilityManager import androidx.compose.foundation.Indication import androidx.compose.foundation.LocalIndication import androidx.compose.foundation.clickable +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf @@ -64,7 +65,7 @@ private fun Context.isTouchExplorationEnabled(): Boolean { return accessibilityManager?.isTouchExplorationEnabled == true } -internal data class CustomHapticFeedback( +internal data class EnhancedHapticFeedback( val hapticsStrength: Int, val view: View ) : HapticFeedback { @@ -120,13 +121,13 @@ internal data object EmptyHaptics : HapticFeedback { } @Composable -fun rememberCustomHapticFeedback(hapticsStrength: Int): HapticFeedback { +fun rememberEnhancedHapticFeedback(hapticsStrength: Int): HapticFeedback { val view = LocalView.current val haptics by remember(hapticsStrength) { derivedStateOf { if (hapticsStrength == 0) EmptyHaptics - else CustomHapticFeedback( + else EnhancedHapticFeedback( hapticsStrength = hapticsStrength, view = view ) @@ -173,4 +174,67 @@ fun Modifier.hapticsClickable( role = role, onClick = onClick ) +} + +fun Modifier.hapticsCombinedClickable( + interactionSource: MutableInteractionSource?, + indication: Indication?, + enabled: Boolean = true, + onClickLabel: String? = null, + role: Role? = null, + onLongClickLabel: String? = null, + onLongClick: (() -> Unit)? = null, + onDoubleClick: (() -> Unit)? = null, + onClick: () -> Unit +) = this.composed { + val haptics = LocalHapticFeedback.current + + Modifier.combinedClickable( + interactionSource = interactionSource, + indication = indication, + enabled = enabled, + onClickLabel = onClickLabel, + role = role, + onLongClickLabel = onLongClickLabel, + onLongClick = if (onLongClick != null) { + { + haptics.performHapticFeedback(HapticFeedbackType.LongPress) + onLongClick() + } + } else null, + onDoubleClick = if (onDoubleClick != null) { + { + haptics.performHapticFeedback(HapticFeedbackType.TextHandleMove) + haptics.performHapticFeedback(HapticFeedbackType.LongPress) + onDoubleClick() + } + } else null, + hapticFeedbackEnabled = false, + onClick = { + haptics.performHapticFeedback(HapticFeedbackType.LongPress) + onClick() + } + ) +} + +fun Modifier.hapticsCombinedClickable( + enabled: Boolean = true, + onClickLabel: String? = null, + role: Role? = null, + onLongClickLabel: String? = null, + onLongClick: (() -> Unit)? = null, + onDoubleClick: (() -> Unit)? = null, + onClick: () -> Unit +) = this.composed { + hapticsCombinedClickable( + interactionSource = null, + indication = LocalIndication.current, + enabled = enabled, + onClickLabel = onClickLabel, + role = role, + onLongClickLabel = onLongClickLabel, + onLongClick = onLongClick, + onDoubleClick = onDoubleClick, + onClick = onClick + ) } \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedSliderItem.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedSliderItem.kt index 3bf155bdd..453530657 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedSliderItem.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/enhanced/EnhancedSliderItem.kt @@ -26,7 +26,6 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.shrinkVertically import androidx.compose.animation.togetherWith -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -59,7 +58,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.text.font.FontWeight @@ -224,7 +222,7 @@ fun EnhancedSliderItem( }, state = tooltipState, content = { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current IconShapeContainer( enabled = true, content = { @@ -242,17 +240,11 @@ fun EnhancedSliderItem( LocalSettingsState.current.iconShape?.shape ?: CircleShape ) - .combinedClickable( + .hapticsCombinedClickable( onLongClick = { - haptics.performHapticFeedback( - HapticFeedbackType.TextHandleMove - ) scope.launch { tooltipState.show() } }, onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.TextHandleMove - ) scope.launch { tooltipState.show() } } ) diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/AspectRatioSelector.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/AspectRatioSelector.kt index cace674c6..5542e54cf 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/AspectRatioSelector.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/AspectRatioSelector.kt @@ -73,7 +73,7 @@ import ru.tech.imageresizershrinker.core.domain.utils.trimTrailingZero import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.theme.takeColorFromScheme -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.text.RoundedTextField diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageNotPickedWidget.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageNotPickedWidget.kt index f92689939..db45988fd 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageNotPickedWidget.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImageNotPickedWidget.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.shapes.CloverShape -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImagePreviewGrid.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImagePreviewGrid.kt index c9ee37dca..ad23aa564 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImagePreviewGrid.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/ImagePreviewGrid.kt @@ -53,7 +53,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen import ru.tech.imageresizershrinker.core.ui.utils.provider.LocalImageLoader -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.utils.AutoContentBasedColors diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/UrisPreview.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/UrisPreview.kt index f8de654d8..67fc371b0 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/UrisPreview.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/image/UrisPreview.kt @@ -57,7 +57,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.utils.helper.ContextUtils.getFilename -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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/other/ExpandableItem.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/ExpandableItem.kt index 842b18793..6b25e3b71 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 @@ -26,7 +26,6 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.shrinkVertically import androidx.compose.foundation.LocalIndication -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -52,11 +51,11 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.ui.utils.animation.FancyTransitionEasing import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable @@ -74,7 +73,7 @@ fun ExpandableItem( onLongClick: (() -> Unit)? = null, expansionIconContainerColor: Color = Color.Transparent ) { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current Column( Modifier .animateContentSize( @@ -92,21 +91,11 @@ fun ExpandableItem( Row( modifier = Modifier .clip(shape) - .combinedClickable( + .hapticsCombinedClickable( interactionSource = interactionSource, indication = LocalIndication.current, - onLongClick = if (onLongClick != null) { - { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onLongClick() - } - } else null + onLongClick = onLongClick ) { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) if (canExpand) { expanded = !expanded } diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/LinkPreviewCard.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/LinkPreviewCard.kt index 6cabccd2d..77e2cdb38 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/LinkPreviewCard.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/other/LinkPreviewCard.kt @@ -20,7 +20,6 @@ package ru.tech.imageresizershrinker.core.ui.widget.other import android.content.ClipData import android.content.Intent import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -63,6 +62,7 @@ import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.shapes.MaterialStarShape import ru.tech.imageresizershrinker.core.ui.utils.helper.LinkPreview +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @@ -86,7 +86,7 @@ fun LinkPreviewCard( color = MaterialTheme.colorScheme.surface, resultPadding = 0.dp ) - .combinedClickable( + .hapticsCombinedClickable( onClick = { linkPreview.link?.let { context.startActivity( diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceItemOverload.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceItemOverload.kt index a5f00da0e..68f742c36 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceItemOverload.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceItemOverload.kt @@ -24,7 +24,6 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.togetherWith import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.LocalIndication -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -48,7 +47,6 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -60,7 +58,8 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSet import ru.tech.imageresizershrinker.core.ui.shapes.IconShapeContainer import ru.tech.imageresizershrinker.core.ui.shapes.IconShapeDefaults import ru.tech.imageresizershrinker.core.ui.utils.provider.ProvideContainerDefaults -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @OptIn(ExperimentalFoundationApi::class) @@ -88,7 +87,7 @@ fun PreferenceItemOverload( interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, bottomContent: (@Composable () -> Unit)? = null ) { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current CompositionLocalProvider( LocalSettingsState provides LocalSettingsState.current.let { if (!enabled) it.copy( @@ -122,23 +121,11 @@ fun PreferenceItemOverload( onClick ?.let { if (enabled) { - Modifier.combinedClickable( + Modifier.hapticsCombinedClickable( interactionSource = interactionSource, indication = LocalIndication.current, - onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onClick() - }, - onLongClick = onLongClick?.let { - { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onLongClick() - } - } + onClick = onClick, + onLongClick = onLongClick ) } else { if (onDisabledClick != null) { diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceRow.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceRow.kt index 41ac06c4d..76b015d98 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceRow.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/preferences/PreferenceRow.kt @@ -23,7 +23,6 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.togetherWith import androidx.compose.foundation.LocalIndication -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -46,7 +45,6 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -56,6 +54,7 @@ import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState import ru.tech.imageresizershrinker.core.ui.shapes.IconShapeContainer import ru.tech.imageresizershrinker.core.ui.utils.provider.ProvideContainerDefaults +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable @@ -85,7 +84,7 @@ fun PreferenceRow( interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, drawContainer: Boolean = true, ) { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current val internalColor = contentColor ?: contentColorFor(backgroundColor = color) CompositionLocalProvider( @@ -120,27 +119,17 @@ fun PreferenceRow( onClick ?.let { if (enabled) { - Modifier.combinedClickable( + Modifier.hapticsClickable( interactionSource = interactionSource, indication = LocalIndication.current, - onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onClick() - } + onClick = onClick ) } else Modifier.then( if (onDisabledClick != null) { - Modifier.combinedClickable( + Modifier.hapticsClickable( interactionSource = interactionSource, indication = LocalIndication.current, - onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onDisabledClick() - } + onClick = onDisabledClick ) } else Modifier ) 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 63f7dab20..87cc66b2c 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 @@ -57,7 +57,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.other.BoxAnimatedVisibility diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueText.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueText.kt index 6d6684b4b..0656d9221 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueText.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/value/ValueText.kt @@ -36,7 +36,7 @@ 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.utils.trimTrailingZero -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/base64-tools/src/main/java/ru/tech/imageresizershrinker/feature/base64_tools/presentation/components/Base64ToolsTiles.kt b/feature/base64-tools/src/main/java/ru/tech/imageresizershrinker/feature/base64_tools/presentation/components/Base64ToolsTiles.kt index 8cc799903..354dcb1b7 100644 --- a/feature/base64-tools/src/main/java/ru/tech/imageresizershrinker/feature/base64_tools/presentation/components/Base64ToolsTiles.kt +++ b/feature/base64-tools/src/main/java/ru/tech/imageresizershrinker/feature/base64_tools/presentation/components/Base64ToolsTiles.kt @@ -64,7 +64,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.resources.icons.Base64 import ru.tech.imageresizershrinker.core.ui.utils.provider.rememberLocalEssentials import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.feature.base64_tools.presentation.screenLogic.Base64ToolsComponent diff --git a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/CipherContent.kt b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/CipherContent.kt index d631923dc..6fd89b09e 100644 --- a/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/CipherContent.kt +++ b/feature/cipher/src/main/java/ru/tech/imageresizershrinker/feature/cipher/presentation/CipherContent.kt @@ -92,7 +92,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDial import ru.tech.imageresizershrinker.core.ui.widget.dialogs.LoadingDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.AutoFilePicker import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.TopAppBarEmoji diff --git a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorHarmonies.kt b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorHarmonies.kt index 06b651e73..bd7533a4e 100644 --- a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorHarmonies.kt +++ b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorHarmonies.kt @@ -63,7 +63,7 @@ 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.toHex import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedChip -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.other.ExpandableItem import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHostState diff --git a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorInfo.kt b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorInfo.kt index f68e455ca..966307ff0 100644 --- a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorInfo.kt +++ b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorInfo.kt @@ -58,7 +58,7 @@ 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.toHex -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.other.ExpandableItem import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHostState diff --git a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorMixing.kt b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorMixing.kt index dd579f07c..03c794297 100644 --- a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorMixing.kt +++ b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorMixing.kt @@ -62,7 +62,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.copyToClip import ru.tech.imageresizershrinker.core.ui.utils.helper.toHex import ru.tech.imageresizershrinker.core.ui.widget.controls.selection.ColorRowSelector import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.transparencyChecker diff --git a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorShading.kt b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorShading.kt index 1903f6f84..791f8aaed 100644 --- a/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorShading.kt +++ b/feature/color-tools/src/main/java/ru/tech/imageresizershrinker/color_tools/presentation/components/ColorShading.kt @@ -59,7 +59,7 @@ 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.toHex import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.core.ui.widget.other.ExpandableItem diff --git a/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/components/CropMaskSelection.kt b/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/components/CropMaskSelection.kt index fdf57df22..a5fbeb084 100644 --- a/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/components/CropMaskSelection.kt +++ b/feature/crop/src/main/java/ru/tech/imageresizershrinker/feature/crop/presentation/components/CropMaskSelection.kt @@ -65,7 +65,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberImagePicker import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.fadingEdges import kotlin.math.roundToInt diff --git a/feature/document-scanner/src/main/java/ru/tech/imageresizershrinker/feature/document_scanner/presentation/DocumentScannerContent.kt b/feature/document-scanner/src/main/java/ru/tech/imageresizershrinker/feature/document_scanner/presentation/DocumentScannerContent.kt index 26da2a567..b03f2ecad 100644 --- a/feature/document-scanner/src/main/java/ru/tech/imageresizershrinker/feature/document_scanner/presentation/DocumentScannerContent.kt +++ b/feature/document-scanner/src/main/java/ru/tech/imageresizershrinker/feature/document_scanner/presentation/DocumentScannerContent.kt @@ -68,7 +68,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDial import ru.tech.imageresizershrinker.core.ui.widget.dialogs.LoadingDialog import ru.tech.imageresizershrinker.core.ui.widget.dialogs.OneTimeSaveLocationSelectionDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.AutoFilePicker import ru.tech.imageresizershrinker.core.ui.widget.image.ImagePager import ru.tech.imageresizershrinker.core.ui.widget.image.UrisPreview diff --git a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/DrawLineStyleSelector.kt b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/DrawLineStyleSelector.kt index 63e5b411e..5d2c9f5cd 100644 --- a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/DrawLineStyleSelector.kt +++ b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/DrawLineStyleSelector.kt @@ -82,7 +82,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.buttons.ToggleGroupButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.fadingEdges diff --git a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/OpenColorPickerCard.kt b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/OpenColorPickerCard.kt index f303770ce..117a93dec 100644 --- a/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/OpenColorPickerCard.kt +++ b/feature/draw/src/main/java/ru/tech/imageresizershrinker/feature/draw/presentation/components/OpenColorPickerCard.kt @@ -33,7 +33,7 @@ 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.theme.onMixedContainer -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt b/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt index c686ef665..959d29625 100644 --- a/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt +++ b/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt @@ -76,7 +76,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedTopAppBar import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedTopAppBarType -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.other.EmojiItem import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText import ru.tech.imageresizershrinker.core.ui.widget.text.marquee diff --git a/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/components/AutoEraseBackgroundCard.kt b/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/components/AutoEraseBackgroundCard.kt index c9f218450..41090d400 100644 --- a/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/components/AutoEraseBackgroundCard.kt +++ b/feature/erase-background/src/main/java/ru/tech/imageresizershrinker/feature/erase_background/presentation/components/AutoEraseBackgroundCard.kt @@ -43,7 +43,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.ui.theme.mixedContainer import ru.tech.imageresizershrinker.core.ui.theme.onMixedContainer import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/components/MaterialYouPaletteItem.kt b/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/components/MaterialYouPaletteItem.kt index 1f7982de0..ee9832b46 100644 --- a/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/components/MaterialYouPaletteItem.kt +++ b/feature/generate-palette/src/main/java/ru/tech/imageresizershrinker/feature/generate_palette/presentation/components/MaterialYouPaletteItem.kt @@ -39,7 +39,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import ru.tech.imageresizershrinker.core.ui.utils.helper.ProvidesValue import ru.tech.imageresizershrinker.core.ui.utils.helper.toHex -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/gradient-maker/src/main/java/ru/tech/imageresizershrinker/feature/gradient_maker/presentation/components/ColorStopSelection.kt b/feature/gradient-maker/src/main/java/ru/tech/imageresizershrinker/feature/gradient_maker/presentation/components/ColorStopSelection.kt index 45c862eef..3fd5712f4 100644 --- a/feature/gradient-maker/src/main/java/ru/tech/imageresizershrinker/feature/gradient_maker/presentation/components/ColorStopSelection.kt +++ b/feature/gradient-maker/src/main/java/ru/tech/imageresizershrinker/feature/gradient_maker/presentation/components/ColorStopSelection.kt @@ -64,7 +64,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.color_picker.ColorInfo import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSlider -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.ExpandableItem import ru.tech.imageresizershrinker.core.ui.widget.other.RevealDirection diff --git a/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/ClickableTile.kt b/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/ClickableTile.kt index 10fecfdc7..54e0cdfd0 100644 --- a/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/ClickableTile.kt +++ b/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/ClickableTile.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/MarkupLayersSideMenuColumn.kt b/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/MarkupLayersSideMenuColumn.kt index 997a9db5a..42fd8acea 100644 --- a/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/MarkupLayersSideMenuColumn.kt +++ b/feature/markup-layers/src/main/java/ru/tech/imageresizershrinker/feature/markup_layers/presentation/components/MarkupLayersSideMenuColumn.kt @@ -49,7 +49,7 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.dp -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker import ru.tech.imageresizershrinker.feature.markup_layers.presentation.components.model.UiMarkupLayer import sh.calvin.reorderable.ReorderableItem diff --git a/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaImage.kt b/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaImage.kt index cdf64b58c..9931e288b 100644 --- a/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaImage.kt +++ b/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaImage.kt @@ -28,7 +28,6 @@ import androidx.compose.animation.togetherWith import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize @@ -61,6 +60,7 @@ import ru.tech.imageresizershrinker.core.resources.icons.BrokenImageVariant import ru.tech.imageresizershrinker.core.ui.theme.Red import ru.tech.imageresizershrinker.core.ui.theme.White import ru.tech.imageresizershrinker.core.ui.theme.takeColorFromScheme +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable import ru.tech.imageresizershrinker.core.ui.widget.image.Picture import ru.tech.imageresizershrinker.feature.media_picker.domain.model.Media @@ -103,7 +103,7 @@ fun MediaImage( .background(MaterialTheme.colorScheme.surfaceContainer) .then( if (canClick) { - Modifier.combinedClickable( + Modifier.hapticsCombinedClickable( onClick = { onItemClick(media) }, diff --git a/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaStickyHeader.kt b/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaStickyHeader.kt index ff4eb5d1c..54daf7ca6 100644 --- a/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaStickyHeader.kt +++ b/feature/media-picker/src/main/java/ru/tech/imageresizershrinker/feature/media_picker/presentation/components/MediaStickyHeader.kt @@ -22,7 +22,6 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -38,6 +37,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable @OptIn(ExperimentalFoundationApi::class) @Composable @@ -72,16 +72,16 @@ fun MediaStickyHeader( style = if (showAsBig) bigTextStyle else smallTextStyle, color = MaterialTheme.colorScheme.onSurface, modifier = Modifier.then( - if (!showAsBig) Modifier.combinedClickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null, - onLongClick = { - onChecked?.invoke() - }, - onClick = { - if (isCheckVisible.value) onChecked?.invoke() - } - ) else Modifier + if (!showAsBig) { + Modifier.hapticsCombinedClickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onLongClick = onChecked, + onClick = { + if (isCheckVisible.value) onChecked?.invoke() + } + ) + } else Modifier ) ) if (!showAsBig && onChecked != null) { diff --git a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt index f108cfaab..ee4be71fb 100644 --- a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt +++ b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageSheet.kt @@ -65,7 +65,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.helper.toHex import ru.tech.imageresizershrinker.core.ui.widget.buttons.PanModeButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalSheetDragHandle -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.shimmer import ru.tech.imageresizershrinker.core.ui.widget.modifier.transparencyChecker diff --git a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageTopAppBar.kt b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageTopAppBar.kt index 6cfae05ed..85be7e8d2 100644 --- a/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageTopAppBar.kt +++ b/feature/pick-color/src/main/java/ru/tech/imageresizershrinker/feature/pick_color/presentation/components/PickColorFromImageTopAppBar.kt @@ -66,7 +66,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.provider.rememberLocalEssentia import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedTopAppBar import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedTopAppBarType -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke import ru.tech.imageresizershrinker.core.ui.widget.modifier.navBarsPaddingOnlyIfTheyAtTheEnd import ru.tech.imageresizershrinker.core.ui.widget.other.TopAppBarEmoji diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/DownloadedLanguageItem.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/DownloadedLanguageItem.kt index cdcce22b6..e2437def5 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/DownloadedLanguageItem.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/DownloadedLanguageItem.kt @@ -20,7 +20,6 @@ package ru.tech.imageresizershrinker.feature.recognize.text.presentation.compone import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateColorAsState import androidx.compose.foundation.border -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsDraggedAsState import androidx.compose.foundation.layout.Arrangement @@ -54,7 +53,6 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -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 @@ -71,7 +69,8 @@ import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.ProvidesValue import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedBottomSheetDefaults import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedCheckbox -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable 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.other.RevealDirection @@ -143,7 +142,7 @@ internal fun LazyItemScope.DownloadedLanguageItem( }, directions = setOf(RevealDirection.EndToStart), swipeableContent = { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current Row( modifier = Modifier .fillMaxWidth() @@ -159,21 +158,16 @@ internal fun LazyItemScope.DownloadedLanguageItem( ).value, resultPadding = 0.dp ) - .combinedClickable( + .hapticsCombinedClickable( onLongClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) scope.launch { state.animateTo(RevealValue.FullyRevealedStart) } + }, + onClick = { + onValueChange(selected, lang) } - ) { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) - onValueChange(selected, lang) - } + ) .padding(16.dp), verticalAlignment = Alignment.CenterVertically ) { diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FillableButton.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FillableButton.kt index 767f6002b..7e2263945 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FillableButton.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FillableButton.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.unit.dp -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FilterSelectionBar.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FilterSelectionBar.kt index 6c82016f2..04e390618 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FilterSelectionBar.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/FilterSelectionBar.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import ru.tech.imageresizershrinker.core.filters.domain.model.Filter import ru.tech.imageresizershrinker.core.resources.R -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.text.AutoSizeText diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/ModelTypeSelector.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/ModelTypeSelector.kt index 7cbe98b3d..41da61b82 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/ModelTypeSelector.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/ModelTypeSelector.kt @@ -34,7 +34,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -52,7 +51,7 @@ fun ModelTypeSelector( value: SegmentationMode, onValueChange: (SegmentationMode) -> Unit ) { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current var showSelectionSheet by remember { mutableStateOf(false) @@ -100,9 +99,6 @@ fun ModelTypeSelector( modifier = Modifier.fillMaxWidth(), title = stringResource(id = mode.title), onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) onValueChange(mode) }, color = animateColorAsState( diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/OcrEngineModeSelector.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/OcrEngineModeSelector.kt index cf46c86a4..26e669c39 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/OcrEngineModeSelector.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/components/OcrEngineModeSelector.kt @@ -34,7 +34,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -52,7 +51,7 @@ fun OcrEngineModeSelector( value: OcrEngineMode, onValueChange: (OcrEngineMode) -> Unit ) { - val haptics = LocalHapticFeedback.current + LocalHapticFeedback.current var showSelectionSheet by remember { mutableStateOf(false) @@ -100,9 +99,6 @@ fun OcrEngineModeSelector( modifier = Modifier.fillMaxWidth(), title = stringResource(id = mode.title), onClick = { - haptics.performHapticFeedback( - HapticFeedbackType.LongPress - ) onValueChange(mode) }, color = animateColorAsState( diff --git a/feature/root/src/main/java/ru/tech/imageresizershrinker/feature/root/presentation/components/SettingsOpenButton.kt b/feature/root/src/main/java/ru/tech/imageresizershrinker/feature/root/presentation/components/SettingsOpenButton.kt index b071cedd6..19e032124 100644 --- a/feature/root/src/main/java/ru/tech/imageresizershrinker/feature/root/presentation/components/SettingsOpenButton.kt +++ b/feature/root/src/main/java/ru/tech/imageresizershrinker/feature/root/presentation/components/SettingsOpenButton.kt @@ -56,7 +56,7 @@ import ru.tech.imageresizershrinker.core.settings.domain.model.FastSettingsSide import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState import ru.tech.imageresizershrinker.core.ui.theme.blend import ru.tech.imageresizershrinker.core.ui.theme.takeColorFromScheme -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container @Composable diff --git a/feature/scan-qr-code/src/main/java/ru/tech/imageresizershrinker/feature/scan_qr_code/presentation/ScanQrCodeContent.kt b/feature/scan-qr-code/src/main/java/ru/tech/imageresizershrinker/feature/scan_qr_code/presentation/ScanQrCodeContent.kt index 4a54764d6..97c0ff3cd 100644 --- a/feature/scan-qr-code/src/main/java/ru/tech/imageresizershrinker/feature/scan_qr_code/presentation/ScanQrCodeContent.kt +++ b/feature/scan-qr-code/src/main/java/ru/tech/imageresizershrinker/feature/scan_qr_code/presentation/ScanQrCodeContent.kt @@ -73,7 +73,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.dialogs.LoadingDialog import ru.tech.imageresizershrinker.core.ui.widget.dialogs.OneTimeSaveLocationSelectionDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.animateShape import ru.tech.imageresizershrinker.core.ui.widget.modifier.container diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/ConfettiHarmonizerSettingItem.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/ConfettiHarmonizerSettingItem.kt index eaa9eccb5..1777c29a1 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/ConfettiHarmonizerSettingItem.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/ConfettiHarmonizerSettingItem.kt @@ -78,7 +78,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.color_picker.ColorSelection import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedChip import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.fadingEdges diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/EmojisCountSettingItem.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/EmojisCountSettingItem.kt index a2a0e9c5d..1c62ce466 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/EmojisCountSettingItem.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/EmojisCountSettingItem.kt @@ -34,7 +34,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.resources.icons.Robot import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedSliderItem -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.other.LocalToastHostState diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/IconShapeSettingItem.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/IconShapeSettingItem.kt index 6edfc19ba..e19e5c7d4 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/IconShapeSettingItem.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/IconShapeSettingItem.kt @@ -57,7 +57,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.provider.SafeLocalContainerColor import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable 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.preferences.PreferenceRow diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/EmojiSelectionSheet.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/EmojiSelectionSheet.kt index cfdd0f6e6..5be9b37e1 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/EmojiSelectionSheet.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/EmojiSelectionSheet.kt @@ -74,7 +74,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedBottomSheetD import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedModalBottomSheet -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.EmojiItem import ru.tech.imageresizershrinker.core.ui.widget.other.GradientEdge diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FabPreview.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FabPreview.kt index c5a80aded..f0f78f1d5 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FabPreview.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FabPreview.kt @@ -55,7 +55,7 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSet import ru.tech.imageresizershrinker.core.ui.shapes.CloverShape import ru.tech.imageresizershrinker.core.ui.utils.helper.ProvidesValue import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.autoElevatedBorder import ru.tech.imageresizershrinker.core.ui.widget.modifier.containerFabBorder diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FontItem.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FontItem.kt index c5b23d87a..d65999c1f 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FontItem.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/additional/FontItem.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.unit.dp import kotlinx.coroutines.launch import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.settings.presentation.model.UiFontFamily -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.modifier.animateShape import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.other.FontSelectionItem diff --git a/feature/zip/src/main/java/ru/tech/imageresizershrinker/feature/zip/presentation/ZipContent.kt b/feature/zip/src/main/java/ru/tech/imageresizershrinker/feature/zip/presentation/ZipContent.kt index 4be08ec87..4f04fbf24 100644 --- a/feature/zip/src/main/java/ru/tech/imageresizershrinker/feature/zip/presentation/ZipContent.kt +++ b/feature/zip/src/main/java/ru/tech/imageresizershrinker/feature/zip/presentation/ZipContent.kt @@ -73,7 +73,7 @@ import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitWithoutSavingDial import ru.tech.imageresizershrinker.core.ui.widget.dialogs.LoadingDialog import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedChip -import ru.tech.imageresizershrinker.core.ui.widget.haptics.hapticsClickable +import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsClickable import ru.tech.imageresizershrinker.core.ui.widget.image.AutoFilePicker import ru.tech.imageresizershrinker.core.ui.widget.image.UrisPreview import ru.tech.imageresizershrinker.core.ui.widget.modifier.container