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 package eu.kanade.presentation.reader
import androidx.compose.foundation.background 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.isSystemInDarkTheme
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
@ -21,6 +23,9 @@ import androidx.compose.material3.Text
import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.material3.surfaceColorAtElevation
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider 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.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
@ -115,6 +120,13 @@ fun ChapterNavigator(
Text(text = currentPageText) Text(text = currentPageText)
// SY <-- // SY <--
val interactionSource = remember { MutableInteractionSource() }
val sliderDragged by interactionSource.collectIsDraggedAsState()
LaunchedEffect(currentPage) {
if (sliderDragged) {
haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)
}
}
Slider( Slider(
modifier = Modifier modifier = Modifier
.weight(1f) .weight(1f)
@ -124,8 +136,8 @@ fun ChapterNavigator(
steps = totalPages, steps = totalPages,
onValueChange = { onValueChange = {
onSliderValueChange(it.toInt() - 1) onSliderValueChange(it.toInt() - 1)
haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)
}, },
interactionSource = interactionSource,
) )
Text(text = totalPages.toString()) Text(text = totalPages.toString())
@ -210,6 +222,13 @@ fun ChapterNavigatorVert(
Text(text = currentPageText) Text(text = currentPageText)
// SY <-- // SY <--
val interactionSource = remember { MutableInteractionSource() }
val sliderDragged by interactionSource.collectIsDraggedAsState()
LaunchedEffect(currentPage) {
if (sliderDragged) {
haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)
}
}
Slider( Slider(
modifier = Modifier modifier = Modifier
.padding(vertical = 8.dp) .padding(vertical = 8.dp)
@ -236,8 +255,8 @@ fun ChapterNavigatorVert(
steps = totalPages, steps = totalPages,
onValueChange = { onValueChange = {
onSliderValueChange(it.toInt() - 1) onSliderValueChange(it.toInt() - 1)
haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)
}, },
interactionSource = interactionSource,
) )
Text(text = totalPages.toString()) Text(text = totalPages.toString())