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( .readerFastColorPresetChange(
fastColorPresetChangeEnabled = mainState.value.fastColorPresetChange!!, fastColorPresetChangeEnabled = mainState.value.fastColorPresetChange!!,
isLoading = state.value.loading,
toolbarHidden = toolbarHidden, toolbarHidden = toolbarHidden,
onSettingsEvent = onSettingsEvent, onSettingsEvent = onSettingsEvent,
presetChanged = { presetChanged = {

View file

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