diff --git a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt index b2a4a420d..e8c73d887 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt @@ -198,7 +198,8 @@ object Settings : DataStorePreferences(null) { val invertedColors = boolPref("pref_inverted_colors", false) val readerWebtoonNav = intPref("reader_navigation_mode_webtoon", 0) val readerPagerNav = intPref("reader_navigation_mode_pager", 0) - val readerWebtoonNavInverted = intPref("reader_tapping_inverted_webtoon", 0) + val readerPagerNavInverted = intPref("reader_tapping_inverted_2", 0) + val readerWebtoonNavInverted = intPref("reader_tapping_inverted_webtoon_2", 0) val webtoonSidePadding = intPref("webtoon_side_padding", 0) val navigateToPan = boolPref("navigate_pan", true) val imageScaleType = intPref("pref_image_scale_type_key", 1) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt index 2e24dfdc2..719464ffa 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt @@ -70,7 +70,7 @@ private fun PagerSetting() = Column { title = stringResource(id = R.string.pref_read_with_tapping_inverted), entries = stringArrayResource(id = R.array.invert_tapping_mode), values = arrayOf("0", "1", "2", "3"), - field = Settings.readerWebtoonNavInverted.asMutableState(), + field = Settings.readerPagerNavInverted.asMutableState(), ) SwitchChoice( title = stringResource(id = R.string.pref_navigate_pan), diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt index 649a5ee5f..ce51a19b9 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt @@ -102,9 +102,9 @@ object ReaderPreferences { fun navigationModeWebtoon() = preferenceStore.getInt("reader_navigation_mode_webtoon", 0) - fun pagerNavInverted() = preferenceStore.getEnum("reader_tapping_inverted", PreferenceValues.TappingInvertMode.NONE) + fun pagerNavInverted() = preferenceStore.getInt("reader_tapping_inverted_2", 0) - fun webtoonNavInverted() = preferenceStore.getEnum("reader_tapping_inverted_webtoon", PreferenceValues.TappingInvertMode.NONE) + fun webtoonNavInverted() = preferenceStore.getInt("reader_tapping_inverted_webtoon_2", 0) fun showNavigationOverlayNewUser() = preferenceStore.getBoolean("reader_navigation_overlay_new_user", true) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt index 282a2e661..a56a0f7ee 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt @@ -4,6 +4,7 @@ import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.data.preference.PreferenceValues.TappingInvertMode import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -90,4 +91,12 @@ abstract class ViewerConfig(readerPreferences: ReaderPreferences, private val sc .onEach { onChanged(it) } .launchIn(scope) } + + fun Flow.register( + valueAssignment: (T) -> Unit, + onChanged: (T) -> Unit = {}, + ) = onEach { valueAssignment(it) } + .distinctUntilChanged() + .onEach { onChanged(it) } + .launchIn(scope) } diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index fa7b62edb..e8fae8886 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.ui.reader.viewer.pager +import eu.kanade.tachiyomi.data.preference.PreferenceValues.TappingInvertMode import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView import eu.kanade.tachiyomi.ui.reader.viewer.ViewerConfig @@ -12,6 +13,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.navigation.RightAndLeftNavigation import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach /** @@ -71,7 +73,7 @@ class PagerConfig( readerPreferences.navigationModePager() .register({ navigationMode = it }, { updateNavigation(navigationMode) }) - readerPreferences.pagerNavInverted() + readerPreferences.pagerNavInverted().changes().map { TappingInvertMode.entries[it] } .register({ tappingInverted = it }, { navigator.invertMode = it }) readerPreferences.pagerNavInverted().changes() .drop(1) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt index 2a3139fa2..192a9ad10 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.ui.reader.viewer.webtoon +import eu.kanade.tachiyomi.data.preference.PreferenceValues.TappingInvertMode import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import eu.kanade.tachiyomi.ui.reader.viewer.ViewerConfig import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation @@ -12,6 +13,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach /** @@ -44,7 +46,7 @@ class WebtoonConfig( readerPreferences.navigationModeWebtoon() .register({ navigationMode = it }, { updateNavigation(it) }) - readerPreferences.webtoonNavInverted() + readerPreferences.webtoonNavInverted().changes().map { TappingInvertMode.entries[it] } .register({ tappingInverted = it }, { navigator.invertMode = it }) readerPreferences.webtoonNavInverted().changes() .drop(1)