🛠️ Change "Visibility animation" to Switch
* Changed from Slider (0-100) to Switch (off-on)
This commit is contained in:
parent
8981c92df3
commit
1c0e259179
11 changed files with 21 additions and 20 deletions
|
|
@ -50,7 +50,7 @@ object DataStoreConstants {
|
||||||
val HORIZONTAL_GESTURE = stringPreferencesKey("horizontal_gesture")
|
val HORIZONTAL_GESTURE = stringPreferencesKey("horizontal_gesture")
|
||||||
val HORIZONTAL_GESTURE_SCROLL = doublePreferencesKey("horizontal_gesture_scroll")
|
val HORIZONTAL_GESTURE_SCROLL = doublePreferencesKey("horizontal_gesture_scroll")
|
||||||
val HORIZONTAL_GESTURE_SENSITIVITY = doublePreferencesKey("horizontal_gesture_sensitivity")
|
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 BOTTOM_BAR_PADDING = intPreferencesKey("bottom_bar_padding")
|
||||||
val HIGHLIGHTED_READING = booleanPreferencesKey("highlighted_reading")
|
val HIGHLIGHTED_READING = booleanPreferencesKey("highlighted_reading")
|
||||||
val HIGHLIGHTED_READING_THICKNESS = intPreferencesKey("highlighted_reading_thickness")
|
val HIGHLIGHTED_READING_THICKNESS = intPreferencesKey("highlighted_reading_thickness")
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ fun ReaderContent(
|
||||||
horizontalGesture: ReaderHorizontalGesture,
|
horizontalGesture: ReaderHorizontalGesture,
|
||||||
horizontalGestureScroll: Float,
|
horizontalGestureScroll: Float,
|
||||||
horizontalGestureSensitivity: Dp,
|
horizontalGestureSensitivity: Dp,
|
||||||
horizontalGestureAlphaAnim: Float,
|
horizontalGestureAlphaAnim: Boolean,
|
||||||
highlightedReading: Boolean,
|
highlightedReading: Boolean,
|
||||||
highlightedReadingThickness: FontWeight,
|
highlightedReadingThickness: FontWeight,
|
||||||
progress: String,
|
progress: String,
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ fun Modifier.readerHorizontalGesture(
|
||||||
horizontalGesture: ReaderHorizontalGesture,
|
horizontalGesture: ReaderHorizontalGesture,
|
||||||
horizontalGestureScroll: Float,
|
horizontalGestureScroll: Float,
|
||||||
horizontalGestureSensitivity: Dp,
|
horizontalGestureSensitivity: Dp,
|
||||||
horizontalGestureAlphaAnim: Float,
|
horizontalGestureAlphaAnim: Boolean,
|
||||||
isLoading: Boolean
|
isLoading: Boolean
|
||||||
): Modifier {
|
): Modifier {
|
||||||
if (horizontalGesture == ReaderHorizontalGesture.OFF || isLoading) return this
|
if (horizontalGesture == ReaderHorizontalGesture.OFF || isLoading) return this
|
||||||
|
|
@ -71,9 +71,9 @@ fun Modifier.readerHorizontalGesture(
|
||||||
@Composable
|
@Composable
|
||||||
fun calculateAlpha(): Float {
|
fun calculateAlpha(): Float {
|
||||||
return animateFloatAsState(
|
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)
|
.div(sensitivity.value.value)
|
||||||
.times(alphaAnim.value)
|
|
||||||
).value
|
).value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ fun ReaderLayout(
|
||||||
horizontalGesture: ReaderHorizontalGesture,
|
horizontalGesture: ReaderHorizontalGesture,
|
||||||
horizontalGestureScroll: Float,
|
horizontalGestureScroll: Float,
|
||||||
horizontalGestureSensitivity: Dp,
|
horizontalGestureSensitivity: Dp,
|
||||||
horizontalGestureAlphaAnim: Float,
|
horizontalGestureAlphaAnim: Boolean,
|
||||||
highlightedReading: Boolean,
|
highlightedReading: Boolean,
|
||||||
highlightedReadingThickness: FontWeight,
|
highlightedReadingThickness: FontWeight,
|
||||||
progress: String,
|
progress: String,
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ fun ReaderScaffold(
|
||||||
horizontalGesture: ReaderHorizontalGesture,
|
horizontalGesture: ReaderHorizontalGesture,
|
||||||
horizontalGestureScroll: Float,
|
horizontalGestureScroll: Float,
|
||||||
horizontalGestureSensitivity: Dp,
|
horizontalGestureSensitivity: Dp,
|
||||||
horizontalGestureAlphaAnim: Float,
|
horizontalGestureAlphaAnim: Boolean,
|
||||||
highlightedReading: Boolean,
|
highlightedReading: Boolean,
|
||||||
highlightedReadingThickness: FontWeight,
|
highlightedReadingThickness: FontWeight,
|
||||||
progress: String,
|
progress: String,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderHorizontalGesture
|
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.MainEvent
|
||||||
import ua.acclorite.book_story.ui.main.MainModel
|
import ua.acclorite.book_story.ui.main.MainModel
|
||||||
import ua.acclorite.book_story.ui.theme.ExpandingTransition
|
import ua.acclorite.book_story.ui.theme.ExpandingTransition
|
||||||
|
|
@ -28,13 +28,14 @@ fun HorizontalGestureAlphaAnimOption() {
|
||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
SliderWithTitle(
|
SwitchWithTitle(
|
||||||
value = state.value.horizontalGestureAlphaAnim to "%",
|
selected = state.value.horizontalGestureAlphaAnim,
|
||||||
toValue = 100,
|
|
||||||
title = stringResource(id = R.string.horizontal_gesture_alpha_anim_option),
|
title = stringResource(id = R.string.horizontal_gesture_alpha_anim_option),
|
||||||
onValueChange = {
|
onClick = {
|
||||||
mainModel.onEvent(
|
mainModel.onEvent(
|
||||||
MainEvent.OnChangeHorizontalGestureAlphaAnim(it)
|
MainEvent.OnChangeHorizontalGestureAlphaAnim(
|
||||||
|
!state.value.horizontalGestureAlphaAnim
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -65,5 +65,5 @@ sealed class MainEvent {
|
||||||
data class OnChangeBrowsePinnedPaths(val value: String) : MainEvent()
|
data class OnChangeBrowsePinnedPaths(val value: String) : MainEvent()
|
||||||
data class OnChangeFontThickness(val value: String) : MainEvent()
|
data class OnChangeFontThickness(val value: String) : MainEvent()
|
||||||
data class OnChangeProgressCount(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()
|
||||||
}
|
}
|
||||||
|
|
@ -501,9 +501,9 @@ class MainModel @Inject constructor(
|
||||||
|
|
||||||
is MainEvent.OnChangeHorizontalGestureAlphaAnim -> handleDatastoreUpdate(
|
is MainEvent.OnChangeHorizontalGestureAlphaAnim -> handleDatastoreUpdate(
|
||||||
key = DataStoreConstants.HORIZONTAL_GESTURE_ALPHA_ANIM,
|
key = DataStoreConstants.HORIZONTAL_GESTURE_ALPHA_ANIM,
|
||||||
value = event.value.toDouble(),
|
value = event.value,
|
||||||
updateState = {
|
updateState = {
|
||||||
it.copy(horizontalGestureAlphaAnim = this.toFloat())
|
it.copy(horizontalGestureAlphaAnim = this)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ data class MainState(
|
||||||
},
|
},
|
||||||
val horizontalGestureScroll: Float = provideDefaultValue { 0.7f },
|
val horizontalGestureScroll: Float = provideDefaultValue { 0.7f },
|
||||||
val horizontalGestureSensitivity: Float = provideDefaultValue { 0.6f },
|
val horizontalGestureSensitivity: Float = provideDefaultValue { 0.6f },
|
||||||
val horizontalGestureAlphaAnim: Float = provideDefaultValue { 1f },
|
val horizontalGestureAlphaAnim: Boolean = provideDefaultValue { true },
|
||||||
val bottomBarPadding: Int = provideDefaultValue { 0 },
|
val bottomBarPadding: Int = provideDefaultValue { 0 },
|
||||||
val highlightedReading: Boolean = provideDefaultValue { false },
|
val highlightedReading: Boolean = provideDefaultValue { false },
|
||||||
val highlightedReadingThickness: Int = provideDefaultValue { 2 },
|
val highlightedReadingThickness: Int = provideDefaultValue { 2 },
|
||||||
|
|
@ -367,7 +367,7 @@ data class MainState(
|
||||||
) { progressCount },
|
) { progressCount },
|
||||||
|
|
||||||
horizontalGestureAlphaAnim = provideValue(
|
horizontalGestureAlphaAnim = provideValue(
|
||||||
HORIZONTAL_GESTURE_ALPHA_ANIM, convert = { toFloat() }
|
HORIZONTAL_GESTURE_ALPHA_ANIM
|
||||||
) { horizontalGestureAlphaAnim },
|
) { horizontalGestureAlphaAnim },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
<string name="horizontal_gesture_option">Горизонтальний жест</string>
|
<string name="horizontal_gesture_option">Горизонтальний жест</string>
|
||||||
<string name="horizontal_gesture_scroll_option">Частка прокрутки</string>
|
<string name="horizontal_gesture_scroll_option">Частка прокрутки</string>
|
||||||
<string name="horizontal_gesture_sensitivity_option">Чутливість</string>
|
<string name="horizontal_gesture_sensitivity_option">Чутливість</string>
|
||||||
<string name="horizontal_gesture_alpha_anim_option">Анімувати видимість</string>
|
<string name="horizontal_gesture_alpha_anim_option">Анімація видимості</string>
|
||||||
<string name="bottom_bar_padding_option">Відступ нижньої панелі</string>
|
<string name="bottom_bar_padding_option">Відступ нижньої панелі</string>
|
||||||
<string name="highlighted_reading_option">Підсвічування слів</string>
|
<string name="highlighted_reading_option">Підсвічування слів</string>
|
||||||
<string name="highlighted_reading_option_desc">Підсвічувати початок кожного слова</string>
|
<string name="highlighted_reading_option_desc">Підсвічувати початок кожного слова</string>
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@
|
||||||
<string name="horizontal_gesture_option">Horizontal gesture</string>
|
<string name="horizontal_gesture_option">Horizontal gesture</string>
|
||||||
<string name="horizontal_gesture_scroll_option">Scroll fraction</string>
|
<string name="horizontal_gesture_scroll_option">Scroll fraction</string>
|
||||||
<string name="horizontal_gesture_sensitivity_option">Sensitivity</string>
|
<string name="horizontal_gesture_sensitivity_option">Sensitivity</string>
|
||||||
<string name="horizontal_gesture_alpha_anim_option">Animate visibility</string>
|
<string name="horizontal_gesture_alpha_anim_option">Visibility animation</string>
|
||||||
<string name="bottom_bar_padding_option">Bottom bar margin</string>
|
<string name="bottom_bar_padding_option">Bottom bar margin</string>
|
||||||
<string name="highlighted_reading_option">Highlight words</string>
|
<string name="highlighted_reading_option">Highlight words</string>
|
||||||
<string name="highlighted_reading_option_desc">Highlight the beginning of each word</string>
|
<string name="highlighted_reading_option_desc">Highlight the beginning of each word</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue