浏览代码

Add option to reverse tapping

Andreas E 4 年之前
父节点
当前提交
c54b8e62d7

+ 2 - 0
app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt

@@ -55,6 +55,8 @@ object PreferenceKeys {
 
     const val readWithTapping = "reader_tap"
 
+    const val readWithTappingInverted = "reader_volume_keys_inverted"
+
     const val readWithLongTap = "reader_long_tap"
 
     const val readWithVolumeKeys = "reader_volume_keys"

+ 2 - 0
app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt

@@ -121,6 +121,8 @@ class PreferencesHelper(val context: Context) {
 
     fun readWithTapping() = flowPrefs.getBoolean(Keys.readWithTapping, true)
 
+    fun readWithTappingInverted() = flowPrefs.getBoolean(Keys.readWithTappingInverted, false)
+
     fun readWithLongTap() = flowPrefs.getBoolean(Keys.readWithLongTap, true)
 
     fun readWithVolumeKeys() = flowPrefs.getBoolean(Keys.readWithVolumeKeys, false)

+ 4 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt

@@ -20,6 +20,7 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
 
     var tappingEnabled = true
     var longTapEnabled = true
+    var tappingInverted = false
     var doubleTapAnimDuration = 500
     var volumeKeysEnabled = false
     var volumeKeysInverted = false
@@ -30,6 +31,9 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
         preferences.readWithTapping()
             .register({ tappingEnabled = it })
 
+        preferences.readWithTappingInverted()
+                .register({ tappingInverted = it })
+
         preferences.readWithLongTap()
             .register({ longTapEnabled = it })
 

+ 7 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt

@@ -81,9 +81,14 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
         })
         pager.tapListener = { event ->
             val positionX = event.x
+            val tappingInverted = config.tappingInverted
+
+            val leftSideTap = positionX < pager.width * 0.33f && config.tappingEnabled
+            val rightSideTap = positionX > pager.width * 0.66f && config.tappingEnabled
+
             when {
-                positionX < pager.width * 0.33f && config.tappingEnabled -> moveLeft()
-                positionX > pager.width * 0.66f && config.tappingEnabled -> moveRight()
+                leftSideTap && !tappingInverted || rightSideTap && tappingInverted -> moveLeft()
+                rightSideTap && !tappingInverted || leftSideTap && tappingInverted -> moveRight()
                 else -> activity.toggleMenu()
             }
         }

+ 5 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt

@@ -190,6 +190,11 @@ class SettingsReaderController : SettingsController() {
                 titleRes = R.string.pref_read_with_tapping
                 defaultValue = true
             }
+            switchPreference {
+                key = Keys.readWithTappingInverted
+                titleRes = R.string.pref_read_with_tapping_inverted
+                defaultValue = false
+            }.apply { dependency = Keys.readWithTapping }
             switchPreference {
                 key = Keys.readWithLongTap
                 titleRes = R.string.pref_read_with_long_tap

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -665,5 +665,6 @@
     <string name="channel_backup_restore">Backup and restore</string>
     <string name="channel_backup_restore_progress">Progress</string>
     <string name="channel_backup_restore_complete">Complete</string>
+    <string name="pref_read_with_tapping_inverted">Invert tapping</string>
 
 </resources>