Prechádzať zdrojové kódy

Fix binding of intarray preferences (maybe fixes #4728)

arkon 4 rokov pred
rodič
commit
0437703cbf

+ 2 - 5
app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/SpinnerPreference.kt

@@ -16,7 +16,6 @@ class SpinnerPreference @JvmOverloads constructor(context: Context, attrs: Attri
     FrameLayout(context, attrs) {
 
     private var entries = emptyList<String>()
-    private var prefOffset = 0
     private var popup: PopupMenu? = null
 
     var onItemSelectedListener: ((Int) -> Unit)? = null
@@ -54,9 +53,8 @@ class SpinnerPreference @JvmOverloads constructor(context: Context, attrs: Attri
 
     fun bindToPreference(pref: Preference<Int>, offset: Int = 0, block: ((Int) -> Unit)? = null) {
         setSelection(pref.get() - offset)
-        prefOffset = offset
 
-        popup = makeSettingsPopup(pref, prefOffset, block)
+        popup = makeSettingsPopup(pref, offset, block)
         setOnTouchListener(popup?.dragToOpenListener)
         setOnClickListener {
             popup?.show()
@@ -75,9 +73,8 @@ class SpinnerPreference @JvmOverloads constructor(context: Context, attrs: Attri
     }
 
     fun bindToIntPreference(pref: Preference<Int>, @ArrayRes intValuesResource: Int, block: ((Int) -> Unit)? = null) {
-        setSelection(pref.get())
-        prefOffset = 0
         val intValues = resources.getStringArray(intValuesResource).map { it.toIntOrNull() }
+        setSelection(intValues.indexOf(pref.get()))
 
         popup = makeSettingsPopup(pref, intValues, block)
         setOnTouchListener(popup?.dragToOpenListener)