Bring back adaptive reader control preference

This commit is contained in:
Koitharu
2024-02-16 10:31:36 +02:00
parent c783378022
commit 8a763b2b9f
6 changed files with 27 additions and 3 deletions

View File

@@ -111,6 +111,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
val isReaderZoomButtonsEnabled: Boolean
get() = prefs.getBoolean(KEY_READER_ZOOM_BUTTONS, false)
val isReaderControlAlwaysLTR: Boolean
get() = prefs.getBoolean(KEY_READER_CONTROL_LTR, false)
val isReaderFullscreenEnabled: Boolean
get() = prefs.getBoolean(KEY_READER_FULLSCREEN, true)
@@ -488,6 +491,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_LOCAL_STORAGE = "local_storage"
const val KEY_READER_DOUBLE_PAGES = "reader_double_pages"
const val KEY_READER_ZOOM_BUTTONS = "reader_zoom_buttons"
const val KEY_READER_CONTROL_LTR = "reader_taps_ltr"
const val KEY_READER_FULLSCREEN = "reader_fullscreen"
const val KEY_READER_VOLUME_BUTTONS = "reader_volume_buttons"
const val KEY_TRACKER_ENABLED = "tracker_enabled"

View File

@@ -114,7 +114,7 @@ class ReaderControlDelegate(
}
private fun isReaderTapsReversed(): Boolean {
return listener.readerMode == ReaderMode.REVERSED
return settings.isReaderControlAlwaysLTR && listener.readerMode == ReaderMode.REVERSED
}
interface OnInteractionListener {

View File

@@ -108,7 +108,7 @@ abstract class BasePagerReaderFragment : BaseReaderFragment<FragmentReaderPagerB
val axisValue = event.getAxisValue(MotionEvent.AXIS_VSCROLL)
val withCtrl = event.metaState and KeyEvent.META_CTRL_MASK != 0
if (!withCtrl) {
switchPageBy(-axisValue.sign.toInt())
onWheelScroll(axisValue)
return true
}
}
@@ -172,6 +172,10 @@ abstract class BasePagerReaderFragment : BaseReaderFragment<FragmentReaderPagerB
)
}
protected open fun onWheelScroll(axisValue: Float) {
switchPageBy(-axisValue.sign.toInt())
}
protected open fun onCreateAdvancedTransformer(): PageTransformer = PageAnimTransformer()
protected open fun onInitPager(pager: ViewPager2) {

View File

@@ -2,13 +2,18 @@ package org.koitharu.kotatsu.reader.ui.pager.reversed
import androidx.viewpager2.widget.ViewPager2
import dagger.hilt.android.AndroidEntryPoint
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.reader.ui.ReaderState
import org.koitharu.kotatsu.reader.ui.pager.BasePagerReaderFragment
import org.koitharu.kotatsu.reader.ui.pager.ReaderPage
import javax.inject.Inject
@AndroidEntryPoint
class ReversedReaderFragment : BasePagerReaderFragment() {
@Inject
lateinit var settings: AppSettings
override fun onCreateAdvancedTransformer(): ViewPager2.PageTransformer = ReversedPageAnimTransformer()
override fun onCreateAdapter() = ReversedPagesAdapter(
@@ -19,6 +24,11 @@ class ReversedReaderFragment : BasePagerReaderFragment() {
exceptionResolver = exceptionResolver,
)
override fun onWheelScroll(axisValue: Float) {
val value = if (settings.isReaderControlAlwaysLTR) -axisValue else axisValue
super.onWheelScroll(value)
}
override fun switchPageBy(delta: Int) {
super.switchPageBy(-delta)
}

View File

@@ -331,7 +331,7 @@
<string name="manga_error_description_pattern">Error details:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Try to &lt;a href="%2$s"&gt;open manga in a web browser&lt;/a&gt; to ensure it is available on its source&lt;br&gt;2. Make sure you are using the &lt;a href="kotatsu://about"&gt;latest version of Kotatsu&lt;/a&gt;&lt;br&gt;3. If it is available, send an error report to the developers.</string>
<string name="history_shortcuts">Show recent manga shortcuts</string>
<string name="history_shortcuts_summary">Make recent manga available by long pressing on application icon</string>
<string name="reader_control_ltr_summary">Tap on the right edge or pressing the right key always switches to the next page</string>
<string name="reader_control_ltr_summary">Navigating next always takes you to the next page when using mouse and keyboard.</string>
<string name="reader_control_ltr">Ergonomic reader control</string>
<string name="color_correction">Color correction</string>
<string name="brightness">Brightness</string>

View File

@@ -51,6 +51,12 @@
android:title="@string/reader_actions"
app:allowDividerAbove="true" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="reader_taps_ltr"
android:summary="@string/reader_control_ltr_summary"
android:title="@string/reader_control_ltr" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="reader_volume_buttons"