mirror of
https://github.com/T8RIN/ImageToolbox.git
synced 2025-08-06 15:49:35 +08:00
Improve haptics
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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() }
|
||||
}
|
||||
)
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
}
|
@ -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() }
|
||||
}
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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(
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
},
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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(
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user