From 1c0e259179e720687e0dff3e1aceaa2e009e5504 Mon Sep 17 00:00:00 2001
From: Acclorite <140836141+Acclorite@users.noreply.github.com>
Date: Tue, 11 Mar 2025 19:52:08 +0200
Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Change=20"Visibility=20?=
=?UTF-8?q?animation"=20to=20Switch?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Changed from Slider (0-100) to Switch (off-on)
---
.../core/constants/DataStoreConstants.kt | 2 +-
.../book_story/presentation/reader/ReaderContent.kt | 2 +-
.../presentation/reader/ReaderHorizontalGesture.kt | 6 +++---
.../book_story/presentation/reader/ReaderLayout.kt | 2 +-
.../presentation/reader/ReaderScaffold.kt | 2 +-
.../components/HorizontalGestureAlphaAnimOption.kt | 13 +++++++------
.../ua/acclorite/book_story/ui/main/MainEvent.kt | 2 +-
.../ua/acclorite/book_story/ui/main/MainModel.kt | 4 ++--
.../ua/acclorite/book_story/ui/main/MainState.kt | 4 ++--
app/src/main/res/values-uk/strings.xml | 2 +-
app/src/main/res/values/strings.xml | 2 +-
11 files changed, 21 insertions(+), 20 deletions(-)
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