feat(reader): add smaller tap zone preference for navigation regions (#867)
This commit is contained in:
parent
24b6c4aa3c
commit
5f762beb90
11 changed files with 58 additions and 11 deletions
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,15 +17,15 @@ class EdgeNavigation : ViewerNavigation() {
|
|||
|
||||
override var regionList: List<Region> = 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,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,11 +17,11 @@ class KindlishNavigation : ViewerNavigation() {
|
|||
|
||||
override var regionList: List<Region> = 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,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,19 +17,19 @@ open class LNavigation : ViewerNavigation() {
|
|||
|
||||
override var regionList: List<Region> = 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,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,11 +17,11 @@ class RightAndLeftNavigation : ViewerNavigation() {
|
|||
|
||||
override var regionList: List<Region> = 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,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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() })
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<string name="action_copy_to_clipboard_first_page">Copy first page to clipboard</string>
|
||||
<string name="action_copy_to_clipboard_second_page">Copy second page to clipboard</string>
|
||||
<string name="action_copy_to_clipboard_combined_page">Copy combined page to clipboard</string>
|
||||
<string name="pref_viewer_nav_smaller_tap_zone">Smaller tap zones</string>
|
||||
<!-- Preferences -->
|
||||
<!-- Appearance section -->
|
||||
<string name="pref_custom_theme_style">Custom theme style</string>
|
||||
|
|
|
|||
Loading…
Reference in a new issue