Fix reader tap zone inversion not working

This commit is contained in:
FooIbar committed 2024-05-18 18:53:26 +08:00
1 parent 1e53a9b389
commit f2011f9b6f
6 files changed
+20 -6

No files matched your search

@@ -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)
@@ -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),
@@ -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)
@@ -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 <T> Flow<T>.register(
valueAssignment: (T) -> Unit,
onChanged: (T) -> Unit = {},
) = onEach { valueAssignment(it) }
.distinctUntilChanged()
.onEach { onChanged(it) }
.launchIn(scope)
}
@@ -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)
@@ -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)