🛠️ Move fast color preset change to top bar

* Moved swipe area of "Fast color preset change" to top bar
This commit is contained in:
Acclorite 2024-09-22 20:31:41 +03:00
parent 8599594372
commit 092ae331aa
5 changed files with 23 additions and 23 deletions

View file

@ -85,7 +85,6 @@ import ua.acclorite.book_story.presentation.screens.reader.components.ReaderText
import ua.acclorite.book_story.presentation.screens.reader.components.ReaderUpdateDialog
import ua.acclorite.book_story.presentation.screens.reader.components.app_bar.ReaderBottomBar
import ua.acclorite.book_story.presentation.screens.reader.components.app_bar.ReaderTopBar
import ua.acclorite.book_story.presentation.screens.reader.components.readerFastColorPresetChange
import ua.acclorite.book_story.presentation.screens.reader.components.settings_bottom_sheet.ReaderSettingsBottomSheet
import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent
import ua.acclorite.book_story.presentation.screens.settings.nested.reader.data.ReaderTextAlignment
@ -476,21 +475,6 @@ private fun ReaderScreen(lazyListState: LazyListState) {
Modifier
}
)
.readerFastColorPresetChange(
fastColorPresetChangeEnabled = mainState.value.fastColorPresetChange,
isLoading = state.value.loading,
toolbarHidden = toolbarHidden,
presetChanged = {
context
.getString(
R.string.color_preset_selected_query,
it
.asString(context)
.trim()
)
.showToast(context = context, longToast = false)
}
)
.padding(contentPadding)
.padding(vertical = verticalPadding),
verticalArrangement = Arrangement.spacedBy(paragraphHeight),

View file

@ -16,21 +16,19 @@ import ua.acclorite.book_story.presentation.screens.settings.data.SettingsEvent
*
* @param fastColorPresetChangeEnabled Whether this is enabled.
* @param isLoading Whether Reader is loading.
* @param toolbarHidden Whether toolbar(selection) is hidden.
* @param presetChanged Callback when Color Preset was changed.
*/
@Composable
fun Modifier.readerFastColorPresetChange(
fastColorPresetChangeEnabled: Boolean,
isLoading: Boolean,
toolbarHidden: Boolean,
presetChanged: (UIText) -> Unit
): Modifier {
val onSettingsEvent = LocalSettingsViewModel.current.onEvent
val offset = remember { mutableFloatStateOf(0f) }
return this.then(
if (fastColorPresetChangeEnabled && toolbarHidden && !isLoading) {
if (fastColorPresetChangeEnabled && !isLoading) {
Modifier.pointerInput(Unit) {
detectHorizontalDragGestures(
onDragStart = { offset.floatValue = 0f },

View file

@ -40,12 +40,15 @@ import ua.acclorite.book_story.presentation.core.components.CustomAnimatedVisibi
import ua.acclorite.book_story.presentation.core.components.CustomIconButton
import ua.acclorite.book_story.presentation.core.components.LocalHistoryViewModel
import ua.acclorite.book_story.presentation.core.components.LocalLibraryViewModel
import ua.acclorite.book_story.presentation.core.components.LocalMainViewModel
import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel
import ua.acclorite.book_story.presentation.core.navigation.LocalOnNavigate
import ua.acclorite.book_story.presentation.core.navigation.Screen
import ua.acclorite.book_story.presentation.core.util.noRippleClickable
import ua.acclorite.book_story.presentation.core.util.showToast
import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent
import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent
import ua.acclorite.book_story.presentation.screens.reader.components.readerFastColorPresetChange
import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent
import ua.acclorite.book_story.presentation.ui.Colors
@ -56,6 +59,7 @@ import ua.acclorite.book_story.presentation.ui.Colors
@Composable
fun ReaderTopBar() {
val state = LocalReaderViewModel.current.state
val mainState = LocalMainViewModel.current.state
val onEvent = LocalReaderViewModel.current.onEvent
val onLibraryEvent = LocalLibraryViewModel.current.onEvent
val onHistoryEvent = LocalHistoryViewModel.current.onEvent
@ -70,6 +74,20 @@ fun ReaderTopBar() {
Modifier
.fillMaxWidth()
.background(Colors.readerSystemBarsColor)
.readerFastColorPresetChange(
fastColorPresetChangeEnabled = mainState.value.fastColorPresetChange,
isLoading = state.value.loading,
presetChanged = {
context
.getString(
R.string.color_preset_selected_query,
it
.asString(context)
.trim()
)
.showToast(context = context, longToast = false)
}
)
) {
TopAppBar(
navigationIcon = {

View file

@ -248,7 +248,7 @@
<string name="double_click_translation_option">Переклад подвійним кліком</string>
<string name="double_click_translation_option_desc">Двічі клацніть на абзац, щоб перекласти його</string>
<string name="fast_color_preset_change_option">Швидка зміна пресета кольорів</string>
<string name="fast_color_preset_change_option_desc">Проведіть вліво або вправо, щоб змінити пресет кольорів</string>
<string name="fast_color_preset_change_option_desc">Проведіть верхню панель вліво або вправо, щоб змінити пресет кольорів</string>
<string name="text_alignment_option">Розташування текста</string>
<string name="letter_spacing_option">Відстань між літерами</string>
<string name="cutout_padding_option">Відступ від виїмки</string>
@ -552,7 +552,7 @@
після цього перемістіть його до бажаного місця.
Ви можете швидко змінювати пресети кольорів увімкнувши відповідне
налаштування в підкатегорії «Кольори» налаштувань Зовнішнього Вигляду,
та потім провівши вліво або вправо в Читачі, щоб швидко змінити пресет кольорів.
та потім провівши верхню панель вліво або вправо в Читачі, щоб швидко змінити пресет кольорів.
</string>

View file

@ -249,7 +249,7 @@
<string name="double_click_translation_option">Double click translation</string>
<string name="double_click_translation_option_desc">Double click on paragraph to translate it</string>
<string name="fast_color_preset_change_option">Fast color preset change</string>
<string name="fast_color_preset_change_option_desc">Swipe left or right to change color preset</string>
<string name="fast_color_preset_change_option_desc">Swipe top bar left or right to change color preset</string>
<string name="text_alignment_option">Text alignment</string>
<string name="letter_spacing_option">Letter spacing</string>
<string name="cutout_padding_option">Cutout padding</string>
@ -550,7 +550,7 @@
If you want to reorder color preset, select it and hold «Handle» icon-button,
then move it to the desired position.
You can fast change color presets by enabling corresponding setting
in Appearance setting\'s «Colors» subcategory, then swiping left or right in Reader,
in Appearance setting\'s «Colors» subcategory, then swiping top bar left or right in Reader,
to fast change color preset.
</string>