Make page transitions setting apply to webtoon viewer as well

This commit is contained in:
arkon
2020-07-10 22:24:55 -04:00
parent 1920568057
commit b363b9fc1a
6 changed files with 32 additions and 27 deletions

View File

@ -92,6 +92,7 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
long_tap.bindToPreference(preferences.readWithLongTap())
always_show_chapter_transition.bindToPreference(preferences.alwaysShowChapterTransition())
crop_borders.bindToPreference(preferences.cropBorders())
page_transitions.bindToPreference(preferences.pageTransitions())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
true_color.visible()
@ -108,7 +109,6 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
scale_type.bindToPreference(preferences.imageScaleType(), 1)
zoom_start.bindToPreference(preferences.zoomStart(), 1)
page_transitions.bindToPreference(preferences.pageTransitions())
}
/**

View File

@ -20,8 +20,9 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
var imagePropertyChangedListener: (() -> Unit)? = null
var tappingEnabled = true
var longTapEnabled = true
var tappingInverted = TappingInvertMode.NONE
var longTapEnabled = true
var usePageTransitions = false
var doubleTapAnimDuration = 500
var volumeKeysEnabled = false
var volumeKeysInverted = false
@ -39,6 +40,9 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
preferences.readWithLongTap()
.register({ longTapEnabled = it })
preferences.pageTransitions()
.register({ usePageTransitions = it })
preferences.doubleTapAnimSpeed()
.register({ doubleTapAnimDuration = it })

View File

@ -11,9 +11,6 @@ import uy.kohesive.injekt.api.get
class PagerConfig(private val viewer: PagerViewer, preferences: PreferencesHelper = Injekt.get()) :
ViewerConfig(preferences) {
var usePageTransitions = false
private set
var imageScaleType = 1
private set
@ -21,9 +18,6 @@ class PagerConfig(private val viewer: PagerViewer, preferences: PreferencesHelpe
private set
init {
preferences.pageTransitions()
.register({ usePageTransitions = it })
preferences.imageScaleType()
.register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() })

View File

@ -236,14 +236,22 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr
* Scrolls up by [scrollDistance].
*/
private fun scrollUp() {
recycler.smoothScrollBy(0, -scrollDistance)
if (config.usePageTransitions) {
recycler.smoothScrollBy(0, -scrollDistance)
} else {
recycler.scrollBy(0, -scrollDistance)
}
}
/**
* Scrolls down by [scrollDistance].
*/
private fun scrollDown() {
recycler.smoothScrollBy(0, scrollDistance)
if (config.usePageTransitions) {
recycler.smoothScrollBy(0, scrollDistance)
} else {
recycler.scrollBy(0, scrollDistance)
}
}
/**

View File

@ -106,6 +106,11 @@ class SettingsReaderController : SettingsController() {
titleRes = R.string.pref_crop_borders
defaultValue = false
}
switchPreference {
key = Keys.enableTransitions
titleRes = R.string.pref_page_transitions
defaultValue = true
}
}
preferenceCategory {
@ -154,11 +159,6 @@ class SettingsReaderController : SettingsController() {
defaultValue = "1"
summary = "%s"
}
switchPreference {
key = Keys.enableTransitions
titleRes = R.string.pref_page_transitions
defaultValue = true
}
}
preferenceCategory {