Browse Source

Add option to invert volume keys. Closes #834

len 7 years ago
parent
commit
1794782323

+ 0 - 4
app/build.gradle

@@ -92,10 +92,6 @@ android {
         checkReleaseBuilds false
     }
 
-    sourceSets {
-        main.java.srcDirs += 'src/main/kotlin'
-    }
-
 }
 
 dependencies {

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

@@ -41,6 +41,8 @@ object PreferenceKeys {
 
     const val readWithVolumeKeys = "reader_volume_keys"
 
+    const val readWithVolumeKeysInverted = "reader_volume_keys_inverted"
+
     const val portraitColumns = "pref_library_columns_portrait_key"
 
     const val landscapeColumns = "pref_library_columns_landscape_key"

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

@@ -69,6 +69,8 @@ class PreferencesHelper(val context: Context) {
 
     fun readWithVolumeKeys() = rxPrefs.getBoolean(Keys.readWithVolumeKeys, false)
 
+    fun readWithVolumeKeysInverted() = rxPrefs.getBoolean(Keys.readWithVolumeKeysInverted, false)
+
     fun portraitColumns() = rxPrefs.getInteger(Keys.portraitColumns, 0)
 
     fun landscapeColumns() = rxPrefs.getInteger(Keys.landscapeColumns, 0)

+ 4 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt

@@ -84,6 +84,8 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
 
     private val volumeKeysEnabled by lazy { preferences.readWithVolumeKeys().getOrDefault() }
 
+    private val volumeKeysInverted by lazy { preferences.readWithVolumeKeysInverted().getOrDefault() }
+
     val preferences by injectLazy<PreferencesHelper>()
 
     private var systemUi: SystemUiHelper? = null
@@ -194,7 +196,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
                 KeyEvent.KEYCODE_VOLUME_DOWN -> {
                     if (volumeKeysEnabled) {
                         if (event.action == KeyEvent.ACTION_UP) {
-                            viewer?.moveDown()
+                            if (!volumeKeysInverted) viewer?.moveDown() else viewer?.moveUp()
                         }
                         return true
                     }
@@ -202,7 +204,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
                 KeyEvent.KEYCODE_VOLUME_UP -> {
                     if (volumeKeysEnabled) {
                         if (event.action == KeyEvent.ACTION_UP) {
-                            viewer?.moveUp()
+                            if (!volumeKeysInverted) viewer?.moveUp() else viewer?.moveDown()
                         }
                         return true
                     }

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

@@ -100,6 +100,11 @@ class SettingsReaderController : SettingsController() {
                 titleRes = R.string.pref_read_with_volume_keys
                 defaultValue = false
             }
+            switchPreference {
+                key = Keys.readWithVolumeKeysInverted
+                titleRes = R.string.pref_read_with_volume_keys_inverted
+                defaultValue = false
+            }.apply { dependency = Keys.readWithVolumeKeys }
         }
     }
 

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

@@ -150,6 +150,7 @@
     <string name="pref_keep_screen_on">Keep screen on</string>
     <string name="pref_reader_navigation">Navigation</string>
     <string name="pref_read_with_volume_keys">Volume keys</string>
+    <string name="pref_read_with_volume_keys_inverted">Invert volume keys</string>
     <string name="pref_read_with_tapping">Tapping</string>
     <string name="pref_reader_theme">Background color</string>
     <string name="white_background">White</string>

+ 1 - 1
build.gradle

@@ -6,7 +6,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.1'
+        classpath 'com.android.tools.build:gradle:2.3.3'
         classpath 'com.github.ben-manes:gradle-versions-plugin:0.15.0'
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files