diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index 81c5a668b..70f8e9031 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -16,6 +16,7 @@ import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentMapOf import kotlinx.collections.immutable.toImmutableMap import tachiyomi.i18n.MR +import tachiyomi.i18n.kmk.KMR import tachiyomi.i18n.sy.SYMR import tachiyomi.presentation.core.i18n.pluralStringResource import tachiyomi.presentation.core.i18n.stringResource @@ -65,6 +66,12 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_show_navigation_mode), subtitle = stringResource(MR.strings.pref_show_navigation_mode_summary), ), + // KMK --> + Preference.PreferenceItem.SwitchPreference( + preference = readerPref.smallerTapZone(), + title = stringResource(KMR.strings.pref_viewer_nav_smaller_tap_zone), + ), + // KMK <-- // SY --> Preference.PreferenceItem.SwitchPreference( preference = readerPref.forceHorizontalSeekbar(), diff --git a/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt b/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt index 1970b0d27..64d4b01a2 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt @@ -16,6 +16,7 @@ import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer import tachiyomi.i18n.MR +import tachiyomi.i18n.kmk.KMR import tachiyomi.i18n.sy.SYMR import tachiyomi.presentation.core.components.CheckboxItem import tachiyomi.presentation.core.components.HeadingItem @@ -111,6 +112,13 @@ private fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenMod } // SY <-- + // KMK --> + CheckboxItem( + label = stringResource(KMR.strings.pref_viewer_nav_smaller_tap_zone), + pref = screenModel.preferences.smallerTapZone(), + ) + // KMK <-- + CheckboxItem( label = stringResource(MR.strings.pref_crop_borders), pref = screenModel.preferences.cropBorders(), @@ -203,6 +211,13 @@ private fun ColumnScope.WebtoonViewerSettings(screenModel: ReaderSettingsScreenM pillColor = MaterialTheme.colorScheme.surfaceContainerHighest, ) + // KMK --> + CheckboxItem( + label = stringResource(KMR.strings.pref_viewer_nav_smaller_tap_zone), + pref = screenModel.preferences.smallerTapZone(), + ) + // KMK <-- + CheckboxItem( label = stringResource(MR.strings.pref_crop_borders), pref = screenModel.preferences.cropBordersWebtoon(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt index 181940d36..b109b5835 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt @@ -143,6 +143,10 @@ class ReaderPreferences( fun showNavigationOverlayOnStart() = preferenceStore.getBoolean("reader_navigation_overlay_on_start", false) + // KMK --> + fun smallerTapZone() = preferenceStore.getBoolean("reader_navigation_smaller_tap_zone", false) + // KMK <-- + // endregion // SY --> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt index 48e4b680b..268bbf553 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt @@ -7,6 +7,7 @@ import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import eu.kanade.tachiyomi.util.lang.invert import tachiyomi.i18n.MR +import uy.kohesive.injekt.injectLazy abstract class ViewerNavigation { @@ -51,4 +52,11 @@ abstract class ViewerNavigation { else -> NavigationRegion.MENU } } + + // KMK --> + private val readerPreferences: ReaderPreferences by injectLazy() + protected val regionSize1 + get() = if (readerPreferences.smallerTapZone().get()) 0.25f else 0.33f + protected val regionSize2 = 1f - regionSize1 + // KMK <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt index ebd69ee3b..1b4032487 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt @@ -17,15 +17,15 @@ class EdgeNavigation : ViewerNavigation() { override var regionList: List = listOf( Region( - rectF = RectF(0f, 0f, 0.33f, 1f), + rectF = RectF(0f, 0f, regionSize1, 1f), type = NavigationRegion.NEXT, ), Region( - rectF = RectF(0.33f, 0.66f, 0.66f, 1f), + rectF = RectF(regionSize1, regionSize2, regionSize2, 1f), type = NavigationRegion.PREV, ), Region( - rectF = RectF(0.66f, 0f, 1f, 1f), + rectF = RectF(regionSize2, 0f, 1f, 1f), type = NavigationRegion.NEXT, ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt index 9b6fa362a..ef13ae3d9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt @@ -17,11 +17,11 @@ class KindlishNavigation : ViewerNavigation() { override var regionList: List = listOf( Region( - rectF = RectF(0.33f, 0.33f, 1f, 1f), + rectF = RectF(regionSize1, regionSize1, 1f, 1f), type = NavigationRegion.NEXT, ), Region( - rectF = RectF(0f, 0.33f, 0.33f, 1f), + rectF = RectF(0f, regionSize1, regionSize1, 1f), type = NavigationRegion.PREV, ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt index c2a751fb3..3018a26d0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt @@ -17,19 +17,19 @@ open class LNavigation : ViewerNavigation() { override var regionList: List = listOf( Region( - rectF = RectF(0f, 0.33f, 0.33f, 0.66f), + rectF = RectF(0f, regionSize1, regionSize1, regionSize2), type = NavigationRegion.PREV, ), Region( - rectF = RectF(0f, 0f, 1f, 0.33f), + rectF = RectF(0f, 0f, 1f, regionSize1), type = NavigationRegion.PREV, ), Region( - rectF = RectF(0.66f, 0.33f, 1f, 0.66f), + rectF = RectF(regionSize2, regionSize1, 1f, regionSize2), type = NavigationRegion.NEXT, ), Region( - rectF = RectF(0f, 0.66f, 1f, 1f), + rectF = RectF(0f, regionSize2, 1f, 1f), type = NavigationRegion.NEXT, ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt index 4c9bc6a77..52c97cf26 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt @@ -17,11 +17,11 @@ class RightAndLeftNavigation : ViewerNavigation() { override var regionList: List = listOf( Region( - rectF = RectF(0f, 0f, 0.33f, 1f), + rectF = RectF(0f, 0f, regionSize1, 1f), type = NavigationRegion.LEFT, ), Region( - rectF = RectF(0.66f, 0f, 1f, 1f), + rectF = RectF(regionSize2, 0f, 1f, 1f), type = NavigationRegion.RIGHT, ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index 6decc7518..8e3a0096e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -116,6 +116,12 @@ class PagerConfig( .drop(1) .onEach { navigationModeChangedListener?.invoke() } .launchIn(scope) + // KMK --> + readerPreferences.smallerTapZone().changes() + .drop(1) + .onEach { updateNavigation(navigationMode) } + .launchIn(scope) + // KMK <-- readerPreferences.dualPageSplitPaged() .register( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt index 540562529..2a9d6afd2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt @@ -65,6 +65,12 @@ class WebtoonConfig( .drop(1) .onEach { navigationModeChangedListener?.invoke() } .launchIn(scope) + // KMK --> + readerPreferences.smallerTapZone().changes() + .drop(1) + .onEach { updateNavigation(navigationMode) } + .launchIn(scope) + // KMK <-- readerPreferences.dualPageSplitWebtoon() .register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() }) diff --git a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml index b6ecb3a69..32780d675 100644 --- a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml @@ -19,6 +19,7 @@ Copy first page to clipboard Copy second page to clipboard Copy combined page to clipboard + Smaller tap zones Custom theme style