From 9584d956381f8b82219d169bb32ef64c97efc99b Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 14 Oct 2023 22:47:02 -0400 Subject: [PATCH] Add haptics to SliderItem (cherry picked from commit f79f0a7e97a6a754a5fbe621faeda6d0e62993f8) --- .../presentation/core/components/SettingsItems.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/components/SettingsItems.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/components/SettingsItems.kt index 3e0a7c773..b5754bcbb 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/components/SettingsItems.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/components/SettingsItems.kt @@ -41,6 +41,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import tachiyomi.core.preference.Preference @@ -161,6 +163,8 @@ fun SliderItem( valueText: String, onChange: (Int) -> Unit, ) { + val haptic = LocalHapticFeedback.current + Row( modifier = Modifier .fillMaxWidth() @@ -181,7 +185,13 @@ fun SliderItem( Slider( value = value.toFloat(), - onValueChange = { onChange(it.toInt()) }, + onValueChange = { + val newValue = it.toInt() + if (newValue != value) { + onChange(newValue) + haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) + } + }, modifier = Modifier.weight(1.5f), valueRange = min.toFloat()..max.toFloat(), steps = max - min,