Fix: Can fast switch presets while book is loading in ReaderScreen.

This commit is contained in:
acclorite 2024-08-07 13:54:33 +03:00
parent bdf79ea77d
commit eaa15ef341
2 changed files with 4 additions and 1 deletions

View file

@ -331,6 +331,7 @@ private fun ReaderScreen(
)
.readerFastColorPresetChange(
fastColorPresetChangeEnabled = mainState.value.fastColorPresetChange!!,
isLoading = state.value.loading,
toolbarHidden = toolbarHidden,
onSettingsEvent = onSettingsEvent,
presetChanged = {

View file

@ -14,6 +14,7 @@ import ua.acclorite.book_story.presentation.screens.settings.data.SettingsEvent
* Detects horizontal swipe gestures.
*
* @param fastColorPresetChangeEnabled Whether this is enabled.
* @param isLoading Whether Reader is loading.
* @param toolbarHidden Whether toolbar(selection) is hidden.
* @param onSettingsEvent [SettingsEvent] callback.
* @param presetChanged Callback when Color Preset was changed.
@ -21,13 +22,14 @@ import ua.acclorite.book_story.presentation.screens.settings.data.SettingsEvent
@Composable
fun Modifier.readerFastColorPresetChange(
fastColorPresetChangeEnabled: Boolean,
isLoading: Boolean,
toolbarHidden: Boolean,
onSettingsEvent: (SettingsEvent) -> Unit,
presetChanged: (UIText) -> Unit
): Modifier {
val offset = remember { mutableFloatStateOf(0f) }
return this.then(
if (fastColorPresetChangeEnabled && toolbarHidden) {
if (fastColorPresetChangeEnabled && toolbarHidden && !isLoading) {
Modifier.pointerInput(Unit) {
detectHorizontalDragGestures(
onDragStart = { offset.floatValue = 0f },