diff --git a/app/src/main/java/eu/kanade/presentation/reader/ChapterNavigator.kt b/app/src/main/java/eu/kanade/presentation/reader/ChapterNavigator.kt index 3e7458803..ec354af9d 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/ChapterNavigator.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/ChapterNavigator.kt @@ -1,6 +1,8 @@ package eu.kanade.presentation.reader import androidx.compose.foundation.background +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsDraggedAsState import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -21,6 +23,9 @@ import androidx.compose.material3.Text import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -115,6 +120,13 @@ fun ChapterNavigator( Text(text = currentPageText) // SY <-- + val interactionSource = remember { MutableInteractionSource() } + val sliderDragged by interactionSource.collectIsDraggedAsState() + LaunchedEffect(currentPage) { + if (sliderDragged) { + haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) + } + } Slider( modifier = Modifier .weight(1f) @@ -124,8 +136,8 @@ fun ChapterNavigator( steps = totalPages, onValueChange = { onSliderValueChange(it.toInt() - 1) - haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) }, + interactionSource = interactionSource, ) Text(text = totalPages.toString()) @@ -210,6 +222,13 @@ fun ChapterNavigatorVert( Text(text = currentPageText) // SY <-- + val interactionSource = remember { MutableInteractionSource() } + val sliderDragged by interactionSource.collectIsDraggedAsState() + LaunchedEffect(currentPage) { + if (sliderDragged) { + haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) + } + } Slider( modifier = Modifier .padding(vertical = 8.dp) @@ -236,8 +255,8 @@ fun ChapterNavigatorVert( steps = totalPages, onValueChange = { onSliderValueChange(it.toInt() - 1) - haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) }, + interactionSource = interactionSource, ) Text(text = totalPages.toString())