Dual page split allow to have different setting for Paged and Webtoon (#4527)
(cherry picked from commit 7a64bf55cb8255000da7aaa0030f845b94d985b0) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt
This commit is contained in:
parent
da3681e602
commit
1fdb03f7db
@ -25,13 +25,13 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val showPageNumber = "pref_show_page_number_key"
|
const val showPageNumber = "pref_show_page_number_key"
|
||||||
|
|
||||||
const val landscapeVerticalSeekbar = "pref_show_vert_seekbar_landscape"
|
const val dualPageSplitPaged = "pref_dual_page_split"
|
||||||
|
|
||||||
const val leftVerticalSeekbar = "pref_left_handed_vertical_seekbar"
|
const val dualPageSplitWebtoon = "pref_dual_page_split_webtoon"
|
||||||
|
|
||||||
const val dualPageSplit = "pref_dual_page_split"
|
const val dualPageInvertPaged = "pref_dual_page_invert"
|
||||||
|
|
||||||
const val dualPageInvert = "pref_dual_page_invert"
|
const val dualPageInvertWebtoon = "pref_dual_page_invert_webtoon"
|
||||||
|
|
||||||
const val showReadingMode = "pref_show_reading_mode"
|
const val showReadingMode = "pref_show_reading_mode"
|
||||||
|
|
||||||
@ -207,6 +207,8 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val incognitoMode = "incognito_mode"
|
const val incognitoMode = "incognito_mode"
|
||||||
|
|
||||||
|
const val createLegacyBackup = "create_legacy_backup"
|
||||||
|
|
||||||
fun trackUsername(syncId: Int) = "pref_mangasync_username_$syncId"
|
fun trackUsername(syncId: Int) = "pref_mangasync_username_$syncId"
|
||||||
|
|
||||||
fun trackPassword(syncId: Int) = "pref_mangasync_password_$syncId"
|
fun trackPassword(syncId: Int) = "pref_mangasync_password_$syncId"
|
||||||
@ -347,11 +349,13 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val sortTagsForLibrary = "sort_tags_for_library"
|
const val sortTagsForLibrary = "sort_tags_for_library"
|
||||||
|
|
||||||
const val createLegacyBackup = "create_legacy_backup"
|
|
||||||
|
|
||||||
const val dontDeleteFromCategories = "dont_delete_from_categories"
|
const val dontDeleteFromCategories = "dont_delete_from_categories"
|
||||||
|
|
||||||
const val extensionRepos = "extension_repos"
|
const val extensionRepos = "extension_repos"
|
||||||
|
|
||||||
const val cropBordersContinuesVertical = "crop_borders_continues_vertical"
|
const val cropBordersContinuesVertical = "crop_borders_continues_vertical"
|
||||||
|
|
||||||
|
const val landscapeVerticalSeekbar = "pref_show_vert_seekbar_landscape"
|
||||||
|
|
||||||
|
const val leftVerticalSeekbar = "pref_left_handed_vertical_seekbar"
|
||||||
}
|
}
|
||||||
|
@ -91,9 +91,13 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun showPageNumber() = flowPrefs.getBoolean(Keys.showPageNumber, true)
|
fun showPageNumber() = flowPrefs.getBoolean(Keys.showPageNumber, true)
|
||||||
|
|
||||||
fun dualPageSplit() = flowPrefs.getBoolean(Keys.dualPageSplit, false)
|
fun dualPageSplitPaged() = flowPrefs.getBoolean(Keys.dualPageSplitPaged, false)
|
||||||
|
|
||||||
fun dualPageInvert() = flowPrefs.getBoolean(Keys.dualPageInvert, false)
|
fun dualPageSplitWebtoon() = flowPrefs.getBoolean(Keys.dualPageSplitWebtoon, false)
|
||||||
|
|
||||||
|
fun dualPageInvertPaged() = flowPrefs.getBoolean(Keys.dualPageInvertPaged, false)
|
||||||
|
|
||||||
|
fun dualPageInvertWebtoon() = flowPrefs.getBoolean(Keys.dualPageInvertWebtoon, false)
|
||||||
|
|
||||||
fun showReadingMode() = prefs.getBoolean(Keys.showReadingMode, true)
|
fun showReadingMode() = prefs.getBoolean(Keys.showReadingMode, true)
|
||||||
|
|
||||||
|
@ -70,7 +70,6 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BaseBottomShee
|
|||||||
binding.landscapeVerticalSeekbar.bindToPreference(preferences.landscapeVerticalSeekbar())
|
binding.landscapeVerticalSeekbar.bindToPreference(preferences.landscapeVerticalSeekbar())
|
||||||
binding.leftVerticalSeekbar.bindToPreference(preferences.leftVerticalSeekbar())
|
binding.leftVerticalSeekbar.bindToPreference(preferences.leftVerticalSeekbar())
|
||||||
binding.fullscreen.bindToPreference(preferences.fullscreen())
|
binding.fullscreen.bindToPreference(preferences.fullscreen())
|
||||||
binding.dualPageSplit.bindToPreference(preferences.dualPageSplit())
|
|
||||||
binding.keepscreen.bindToPreference(preferences.keepScreenOn())
|
binding.keepscreen.bindToPreference(preferences.keepScreenOn())
|
||||||
binding.longTap.bindToPreference(preferences.readWithLongTap())
|
binding.longTap.bindToPreference(preferences.readWithLongTap())
|
||||||
binding.alwaysShowChapterTransition.bindToPreference(preferences.alwaysShowChapterTransition())
|
binding.alwaysShowChapterTransition.bindToPreference(preferences.alwaysShowChapterTransition())
|
||||||
@ -78,12 +77,6 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BaseBottomShee
|
|||||||
binding.autoWebtoonMode.bindToPreference(preferences.useAutoWebtoon())
|
binding.autoWebtoonMode.bindToPreference(preferences.useAutoWebtoon())
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
// Makes so that dual page invert gets hidden away when turning of dual page split
|
|
||||||
preferences.dualPageSplit()
|
|
||||||
.asImmediateFlow { binding.dualPageInvert.isVisible = it }
|
|
||||||
.launchIn(activity.lifecycleScope)
|
|
||||||
binding.dualPageInvert.bindToPreference(preferences.dualPageInvert())
|
|
||||||
|
|
||||||
// If the preference is explicitly disabled, that means the setting was configured since there is a cutout
|
// If the preference is explicitly disabled, that means the setting was configured since there is a cutout
|
||||||
if (activity.hasCutout || !preferences.cutoutShort().get()) {
|
if (activity.hasCutout || !preferences.cutoutShort().get()) {
|
||||||
binding.cutoutShort.isVisible = true
|
binding.cutoutShort.isVisible = true
|
||||||
@ -110,6 +103,13 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BaseBottomShee
|
|||||||
// SY -->
|
// SY -->
|
||||||
binding.pagerPrefsGroup.pageTransitionsPager.bindToPreference(preferences.pageTransitionsPager())
|
binding.pagerPrefsGroup.pageTransitionsPager.bindToPreference(preferences.pageTransitionsPager())
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
|
// Makes so that dual page invert gets hidden away when turning of dual page split
|
||||||
|
binding.dualPageSplit.bindToPreference(preferences.dualPageSplitPaged())
|
||||||
|
preferences.dualPageSplitPaged()
|
||||||
|
.asImmediateFlow { binding.dualPageInvert.isVisible = it }
|
||||||
|
.launchIn(activity.lifecycleScope)
|
||||||
|
binding.dualPageInvert.bindToPreference(preferences.dualPageInvertPaged())
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,6 +132,13 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BaseBottomShee
|
|||||||
binding.webtoonPrefsGroup.cropBordersContinuesVertical.bindToPreference(preferences.cropBordersContinuesVertical())
|
binding.webtoonPrefsGroup.cropBordersContinuesVertical.bindToPreference(preferences.cropBordersContinuesVertical())
|
||||||
binding.webtoonPrefsGroup.pageTransitionsWebtoon.bindToPreference(preferences.pageTransitionsWebtoon())
|
binding.webtoonPrefsGroup.pageTransitionsWebtoon.bindToPreference(preferences.pageTransitionsWebtoon())
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
|
// Makes so that dual page invert gets hidden away when turning of dual page split
|
||||||
|
binding.dualPageSplit.bindToPreference(preferences.dualPageSplitWebtoon())
|
||||||
|
preferences.dualPageSplitWebtoon()
|
||||||
|
.asImmediateFlow { binding.dualPageInvert.isVisible = it }
|
||||||
|
.launchIn(activity.lifecycleScope)
|
||||||
|
binding.dualPageInvert.bindToPreference(preferences.dualPageInvertWebtoon())
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,11 +23,15 @@ abstract class ViewerConfig(preferences: PreferencesHelper, private val scope: C
|
|||||||
var volumeKeysInverted = false
|
var volumeKeysInverted = false
|
||||||
var trueColor = false
|
var trueColor = false
|
||||||
var alwaysShowChapterTransition = true
|
var alwaysShowChapterTransition = true
|
||||||
var dualPageSplit = false
|
|
||||||
var dualPageInvert = false
|
|
||||||
var navigationMode = 0
|
var navigationMode = 0
|
||||||
protected set
|
protected set
|
||||||
|
|
||||||
|
var dualPageSplit = false
|
||||||
|
protected set
|
||||||
|
|
||||||
|
var dualPageInvert = false
|
||||||
|
protected set
|
||||||
|
|
||||||
abstract var navigator: ViewerNavigation
|
abstract var navigator: ViewerNavigation
|
||||||
protected set
|
protected set
|
||||||
|
|
||||||
@ -52,12 +56,6 @@ abstract class ViewerConfig(preferences: PreferencesHelper, private val scope: C
|
|||||||
|
|
||||||
preferences.alwaysShowChapterTransition()
|
preferences.alwaysShowChapterTransition()
|
||||||
.register({ alwaysShowChapterTransition = it })
|
.register({ alwaysShowChapterTransition = it })
|
||||||
|
|
||||||
preferences.dualPageSplit()
|
|
||||||
.register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() })
|
|
||||||
|
|
||||||
preferences.dualPageInvert()
|
|
||||||
.register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun defaultNavigation(): ViewerNavigation
|
protected abstract fun defaultNavigation(): ViewerNavigation
|
||||||
|
@ -49,6 +49,12 @@ class PagerConfig(
|
|||||||
preferences.pagerNavInverted()
|
preferences.pagerNavInverted()
|
||||||
.register({ tappingInverted = it }, { navigator.invertMode = it })
|
.register({ tappingInverted = it }, { navigator.invertMode = it })
|
||||||
|
|
||||||
|
preferences.dualPageSplitPaged()
|
||||||
|
.register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() })
|
||||||
|
|
||||||
|
preferences.dualPageInvertPaged()
|
||||||
|
.register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() })
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
preferences.pageTransitionsPager()
|
preferences.pageTransitionsPager()
|
||||||
.register({ usePageTransitions = it }, { imagePropertyChangedListener?.invoke() })
|
.register({ usePageTransitions = it }, { imagePropertyChangedListener?.invoke() })
|
||||||
|
@ -50,6 +50,12 @@ class WebtoonConfig(
|
|||||||
preferences.webtoonNavInverted()
|
preferences.webtoonNavInverted()
|
||||||
.register({ tappingInverted = it }, { navigator.invertMode = it })
|
.register({ tappingInverted = it }, { navigator.invertMode = it })
|
||||||
|
|
||||||
|
preferences.dualPageSplitWebtoon()
|
||||||
|
.register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() })
|
||||||
|
|
||||||
|
preferences.dualPageInvertWebtoon()
|
||||||
|
.register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() })
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
preferences.webtoonEnableZoomOut()
|
preferences.webtoonEnableZoomOut()
|
||||||
.register({ enableZoomOut = it }, { zoomPropertyChangedListener?.invoke(it) })
|
.register({ enableZoomOut = it }, { zoomPropertyChangedListener?.invoke(it) })
|
||||||
|
@ -62,18 +62,6 @@ class SettingsReaderController : SettingsController() {
|
|||||||
summaryRes = R.string.pref_left_handed_vertical_seekbar_summary
|
summaryRes = R.string.pref_left_handed_vertical_seekbar_summary
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
switchPreference {
|
|
||||||
key = Keys.dualPageSplit
|
|
||||||
titleRes = R.string.pref_dual_page_split
|
|
||||||
defaultValue = false
|
|
||||||
}
|
|
||||||
switchPreference {
|
|
||||||
key = Keys.dualPageInvert
|
|
||||||
titleRes = R.string.pref_dual_page_invert
|
|
||||||
summaryRes = R.string.pref_dual_page_invert_summary
|
|
||||||
defaultValue = false
|
|
||||||
preferences.dualPageSplit().asImmediateFlow { isVisible = it }.launchIn(viewScope)
|
|
||||||
}
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
switchPreference {
|
switchPreference {
|
||||||
key = Keys.trueColor
|
key = Keys.trueColor
|
||||||
@ -220,11 +208,25 @@ class SettingsReaderController : SettingsController() {
|
|||||||
titleRes = R.string.pref_crop_borders
|
titleRes = R.string.pref_crop_borders
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
// SY -->
|
||||||
switchPreference {
|
switchPreference {
|
||||||
key = Keys.enableTransitionsPager
|
key = Keys.enableTransitionsPager
|
||||||
titleRes = R.string.pref_page_transitions
|
titleRes = R.string.pref_page_transitions
|
||||||
defaultValue = true
|
defaultValue = true
|
||||||
}
|
}
|
||||||
|
// SY <--
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.dualPageSplitPaged
|
||||||
|
titleRes = R.string.pref_dual_page_split
|
||||||
|
defaultValue = false
|
||||||
|
}
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.dualPageInvertPaged
|
||||||
|
titleRes = R.string.pref_dual_page_invert
|
||||||
|
summaryRes = R.string.pref_dual_page_invert_summary
|
||||||
|
defaultValue = false
|
||||||
|
preferences.dualPageSplitPaged().asImmediateFlow { isVisible = it }.launchIn(viewScope)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preferenceCategory {
|
preferenceCategory {
|
||||||
@ -280,6 +282,19 @@ class SettingsReaderController : SettingsController() {
|
|||||||
titleRes = R.string.pref_crop_borders
|
titleRes = R.string.pref_crop_borders
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.dualPageSplitWebtoon
|
||||||
|
titleRes = R.string.pref_dual_page_split
|
||||||
|
defaultValue = false
|
||||||
|
}
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.dualPageInvertWebtoon
|
||||||
|
titleRes = R.string.pref_dual_page_invert
|
||||||
|
summaryRes = R.string.pref_dual_page_invert_summary
|
||||||
|
defaultValue = false
|
||||||
|
preferences.dualPageSplitWebtoon().asImmediateFlow { isVisible = it }.launchIn(viewScope)
|
||||||
|
}
|
||||||
|
// SY -->
|
||||||
switchPreference {
|
switchPreference {
|
||||||
key = Keys.enableTransitionsWebtoon
|
key = Keys.enableTransitionsWebtoon
|
||||||
titleRes = R.string.pref_page_transitions
|
titleRes = R.string.pref_page_transitions
|
||||||
@ -290,6 +305,7 @@ class SettingsReaderController : SettingsController() {
|
|||||||
titleRes = R.string.enable_zoom_out
|
titleRes = R.string.enable_zoom_out
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
// SY <--
|
||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user