mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Make page transitions setting apply to webtoon viewer as well
This commit is contained in:
		@@ -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())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -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 })
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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() })
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -179,11 +179,19 @@
 | 
			
		||||
        android:textColor="?android:attr/textColorSecondary"
 | 
			
		||||
        app:layout_constraintTop_toBottomOf="@id/always_show_chapter_transition" />
 | 
			
		||||
 | 
			
		||||
    <com.google.android.material.switchmaterial.SwitchMaterial
 | 
			
		||||
        android:id="@+id/page_transitions"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:text="@string/pref_page_transitions"
 | 
			
		||||
        android:textColor="?android:attr/textColorSecondary"
 | 
			
		||||
        app:layout_constraintTop_toBottomOf="@id/crop_borders" />
 | 
			
		||||
 | 
			
		||||
    <android.widget.Space
 | 
			
		||||
        android:id="@+id/end_general_preferences"
 | 
			
		||||
        android:layout_width="0dp"
 | 
			
		||||
        android:layout_height="0dp"
 | 
			
		||||
        app:layout_constraintBottom_toBottomOf="@id/crop_borders" />
 | 
			
		||||
        app:layout_constraintBottom_toBottomOf="@id/page_transitions" />
 | 
			
		||||
 | 
			
		||||
    <!-- Pager preferences -->
 | 
			
		||||
 | 
			
		||||
@@ -236,20 +244,11 @@
 | 
			
		||||
        app:layout_constraintStart_toEndOf="@id/verticalcenter"
 | 
			
		||||
        app:layout_constraintTop_toBottomOf="@id/scale_type" />
 | 
			
		||||
 | 
			
		||||
    <com.google.android.material.switchmaterial.SwitchMaterial
 | 
			
		||||
        android:id="@+id/page_transitions"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:layout_marginTop="10dp"
 | 
			
		||||
        android:text="@string/pref_page_transitions"
 | 
			
		||||
        android:textColor="?android:attr/textColorSecondary"
 | 
			
		||||
        app:layout_constraintTop_toBottomOf="@id/zoom_start" />
 | 
			
		||||
 | 
			
		||||
    <android.widget.Space
 | 
			
		||||
        android:id="@+id/end_paged_preferences"
 | 
			
		||||
        android:layout_width="0dp"
 | 
			
		||||
        android:layout_height="0dp"
 | 
			
		||||
        app:layout_constraintBottom_toBottomOf="@+id/page_transitions"
 | 
			
		||||
        app:layout_constraintBottom_toBottomOf="@+id/zoom_start"
 | 
			
		||||
        tools:layout_editor_absoluteX="24dp" />
 | 
			
		||||
 | 
			
		||||
    <TextView
 | 
			
		||||
@@ -328,7 +327,7 @@
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:visibility="gone"
 | 
			
		||||
        app:constraint_referenced_ids="pager_prefs,scale_type_text,scale_type,zoom_start_text,zoom_start,page_transitions"
 | 
			
		||||
        app:constraint_referenced_ids="pager_prefs,scale_type_text,scale_type,zoom_start_text,zoom_start"
 | 
			
		||||
        tools:visibility="visible" />
 | 
			
		||||
 | 
			
		||||
    <androidx.constraintlayout.widget.Group
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user