ChapterNavigator: Fix haptic feedback (#9458)

(cherry picked from commit fce9cb820cdcba79f568e79ecb4005b512cf1d78)
This commit is contained in:
Ivan Iskandar 2023-05-06 09:15:56 +07:00 committed by Jobobby04
parent 8b62c58c56
commit 277c19eb36

View File

@ -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())