diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/core/constants/DataStoreConstants.kt b/app/src/main/java/ua/acclorite/book_story/presentation/core/constants/DataStoreConstants.kt index 264a463e..a653cc73 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/core/constants/DataStoreConstants.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/core/constants/DataStoreConstants.kt @@ -50,7 +50,7 @@ object DataStoreConstants { val HORIZONTAL_GESTURE = stringPreferencesKey("horizontal_gesture") val HORIZONTAL_GESTURE_SCROLL = doublePreferencesKey("horizontal_gesture_scroll") val HORIZONTAL_GESTURE_SENSITIVITY = doublePreferencesKey("horizontal_gesture_sensitivity") - val HORIZONTAL_GESTURE_ALPHA_ANIM = doublePreferencesKey("horizontal_gesture_alpha_anim") + val HORIZONTAL_GESTURE_ALPHA_ANIM = booleanPreferencesKey("horizontal_gesture_alpha_anim_bool") val BOTTOM_BAR_PADDING = intPreferencesKey("bottom_bar_padding") val HIGHLIGHTED_READING = booleanPreferencesKey("highlighted_reading") val HIGHLIGHTED_READING_THICKNESS = intPreferencesKey("highlighted_reading_thickness") diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderContent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderContent.kt index 6817905c..23dde7ee 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderContent.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderContent.kt @@ -57,7 +57,7 @@ fun ReaderContent( horizontalGesture: ReaderHorizontalGesture, horizontalGestureScroll: Float, horizontalGestureSensitivity: Dp, - horizontalGestureAlphaAnim: Float, + horizontalGestureAlphaAnim: Boolean, highlightedReading: Boolean, highlightedReadingThickness: FontWeight, progress: String, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderHorizontalGesture.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderHorizontalGesture.kt index 3b1c623f..b43e09ba 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderHorizontalGesture.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderHorizontalGesture.kt @@ -34,7 +34,7 @@ fun Modifier.readerHorizontalGesture( horizontalGesture: ReaderHorizontalGesture, horizontalGestureScroll: Float, horizontalGestureSensitivity: Dp, - horizontalGestureAlphaAnim: Float, + horizontalGestureAlphaAnim: Boolean, isLoading: Boolean ): Modifier { if (horizontalGesture == ReaderHorizontalGesture.OFF || isLoading) return this @@ -71,9 +71,9 @@ fun Modifier.readerHorizontalGesture( @Composable fun calculateAlpha(): Float { return animateFloatAsState( - 1f - abs(with(density) { horizontalOffset.floatValue.toDp() }.value) + if (!alphaAnim.value) 1f + else 1f - abs(with(density) { horizontalOffset.floatValue.toDp() }.value) .div(sensitivity.value.value) - .times(alphaAnim.value) ).value } diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt index 9651ecf4..e85a90e3 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt @@ -57,7 +57,7 @@ fun ReaderLayout( horizontalGesture: ReaderHorizontalGesture, horizontalGestureScroll: Float, horizontalGestureSensitivity: Dp, - horizontalGestureAlphaAnim: Float, + horizontalGestureAlphaAnim: Boolean, highlightedReading: Boolean, highlightedReadingThickness: FontWeight, progress: String, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderScaffold.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderScaffold.kt index 7bd62065..5c1c7956 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderScaffold.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderScaffold.kt @@ -61,7 +61,7 @@ fun ReaderScaffold( horizontalGesture: ReaderHorizontalGesture, horizontalGestureScroll: Float, horizontalGestureSensitivity: Dp, - horizontalGestureAlphaAnim: Float, + horizontalGestureAlphaAnim: Boolean, highlightedReading: Boolean, highlightedReadingThickness: FontWeight, progress: String, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/settings/reader/reading_mode/components/HorizontalGestureAlphaAnimOption.kt b/app/src/main/java/ua/acclorite/book_story/presentation/settings/reader/reading_mode/components/HorizontalGestureAlphaAnimOption.kt index 7768ecfd..350fe7c6 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/settings/reader/reading_mode/components/HorizontalGestureAlphaAnimOption.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/settings/reader/reading_mode/components/HorizontalGestureAlphaAnimOption.kt @@ -12,7 +12,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.reader.ReaderHorizontalGesture -import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle +import ua.acclorite.book_story.presentation.core.components.settings.SwitchWithTitle import ua.acclorite.book_story.ui.main.MainEvent import ua.acclorite.book_story.ui.main.MainModel import ua.acclorite.book_story.ui.theme.ExpandingTransition @@ -28,13 +28,14 @@ fun HorizontalGestureAlphaAnimOption() { else -> true } ) { - SliderWithTitle( - value = state.value.horizontalGestureAlphaAnim to "%", - toValue = 100, + SwitchWithTitle( + selected = state.value.horizontalGestureAlphaAnim, title = stringResource(id = R.string.horizontal_gesture_alpha_anim_option), - onValueChange = { + onClick = { mainModel.onEvent( - MainEvent.OnChangeHorizontalGestureAlphaAnim(it) + MainEvent.OnChangeHorizontalGestureAlphaAnim( + !state.value.horizontalGestureAlphaAnim + ) ) } ) diff --git a/app/src/main/java/ua/acclorite/book_story/ui/main/MainEvent.kt b/app/src/main/java/ua/acclorite/book_story/ui/main/MainEvent.kt index cbc6294f..8f4f0b9f 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/main/MainEvent.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/main/MainEvent.kt @@ -65,5 +65,5 @@ sealed class MainEvent { data class OnChangeBrowsePinnedPaths(val value: String) : MainEvent() data class OnChangeFontThickness(val value: String) : MainEvent() data class OnChangeProgressCount(val value: String) : MainEvent() - data class OnChangeHorizontalGestureAlphaAnim(val value: Float) : MainEvent() + data class OnChangeHorizontalGestureAlphaAnim(val value: Boolean) : MainEvent() } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/ui/main/MainModel.kt b/app/src/main/java/ua/acclorite/book_story/ui/main/MainModel.kt index 0748dea7..c4dc9c48 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/main/MainModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/main/MainModel.kt @@ -501,9 +501,9 @@ class MainModel @Inject constructor( is MainEvent.OnChangeHorizontalGestureAlphaAnim -> handleDatastoreUpdate( key = DataStoreConstants.HORIZONTAL_GESTURE_ALPHA_ANIM, - value = event.value.toDouble(), + value = event.value, updateState = { - it.copy(horizontalGestureAlphaAnim = this.toFloat()) + it.copy(horizontalGestureAlphaAnim = this) } ) } diff --git a/app/src/main/java/ua/acclorite/book_story/ui/main/MainState.kt b/app/src/main/java/ua/acclorite/book_story/ui/main/MainState.kt index acb32773..f75d8fdb 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/main/MainState.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/main/MainState.kt @@ -100,7 +100,7 @@ data class MainState( }, val horizontalGestureScroll: Float = provideDefaultValue { 0.7f }, val horizontalGestureSensitivity: Float = provideDefaultValue { 0.6f }, - val horizontalGestureAlphaAnim: Float = provideDefaultValue { 1f }, + val horizontalGestureAlphaAnim: Boolean = provideDefaultValue { true }, val bottomBarPadding: Int = provideDefaultValue { 0 }, val highlightedReading: Boolean = provideDefaultValue { false }, val highlightedReadingThickness: Int = provideDefaultValue { 2 }, @@ -367,7 +367,7 @@ data class MainState( ) { progressCount }, horizontalGestureAlphaAnim = provideValue( - HORIZONTAL_GESTURE_ALPHA_ANIM, convert = { toFloat() } + HORIZONTAL_GESTURE_ALPHA_ANIM ) { horizontalGestureAlphaAnim }, ) } diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9e822402..79b90a1c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -186,7 +186,7 @@ Горизонтальний жест Частка прокрутки Чутливість - Анімувати видимість + Анімація видимості Відступ нижньої панелі Підсвічування слів Підсвічувати початок кожного слова diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 93f825fb..399bb75d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -217,7 +217,7 @@ Horizontal gesture Scroll fraction Sensitivity - Animate visibility + Visibility animation Bottom bar margin Highlight words Highlight the beginning of each word