Explorar o código

Disable swiping on switch in SwitchSettingsPreference

arkon %!s(int64=3) %!d(string=hai) anos
pai
achega
147978b932

+ 8 - 0
app/src/main/java/eu/kanade/tachiyomi/widget/preference/SwitchSettingsPreference.kt

@@ -1,7 +1,9 @@
 package eu.kanade.tachiyomi.widget.preference
 
+import android.annotation.SuppressLint
 import android.content.Context
 import android.util.AttributeSet
+import android.view.MotionEvent
 import android.view.View
 import androidx.preference.PreferenceViewHolder
 import androidx.preference.SwitchPreferenceCompat
@@ -16,11 +18,17 @@ class SwitchSettingsPreference @JvmOverloads constructor(context: Context, attrs
         widgetLayoutResource = R.layout.pref_settings
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun onBindViewHolder(holder: PreferenceViewHolder) {
         super.onBindViewHolder(holder)
 
         holder.findViewById(R.id.button).setOnClickListener {
             onSettingsClick?.onClick(it)
         }
+
+        // Disable swiping to align with SwitchPreferenceCompat
+        holder.findViewById(R.id.switchWidget).setOnTouchListener { _, event ->
+            event.actionMasked == MotionEvent.ACTION_MOVE
+        }
     }
 }