From c74b128b1ae4a12ef896d68bba1d501ea8ad2df4 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:59:35 +0800 Subject: [PATCH] Debounce slider value changes --- .../eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 3983425d2..7a2a445e0 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -51,9 +51,11 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalBottomSheetFix import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier @@ -110,6 +112,8 @@ import eu.kanade.tachiyomi.util.system.isNightMode import java.io.File import java.io.IOException import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.merge @@ -322,6 +326,12 @@ class ReaderActivity : EhActivity() { dialogState.Intercept() val showSeekbar by Settings.showReaderSeekbar.collectAsState() + val sliderValueFlow = remember { MutableStateFlow(0) } + LaunchedEffect(sliderValueFlow) { + sliderValueFlow.drop(1).debounce(200).collect { + moveToPageIndex(it) + } + } ReaderAppBars( visible = menuVisible, isRtl = isRtl, @@ -330,7 +340,8 @@ class ReaderActivity : EhActivity() { totalPages = totalPage, onSliderValueChange = { isScrollingThroughPages = true - moveToPageIndex(it) + sliderValueFlow.value = it + currentPage = it + 1 }, onClickSettings = { readerSettingSheetDialog?.show() }, )