File tree Expand file tree Collapse file tree
AnkiDroid/src/main/java/com/ichi2/preferences Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -215,7 +215,7 @@ open class ControlPreference :
215215 *
216216 * @see getRelatedPreferences
217217 */
218- protected fun getPreferenceAssignedTo (binding : Binding ): ControlPreference ? {
218+ protected open fun getPreferenceAssignedTo (binding : Binding ): ControlPreference ? {
219219 for (pref in getRelatedPreferences()) {
220220 val bindings = pref.getMappableBindings().map { it.binding }
221221 if (binding in bindings) {
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ import android.content.Context
1919import android.util.AttributeSet
2020import com.ichi2.anki.R
2121import com.ichi2.anki.cardviewer.GestureProcessor
22+ import com.ichi2.anki.common.annotations.NeedsTest
2223import com.ichi2.anki.dialogs.CardSideSelectionDialog
2324import com.ichi2.anki.preferences.allPreferences
2425import com.ichi2.anki.reviewer.Binding
@@ -78,6 +79,16 @@ open class ReviewerControlPreference : ControlPreference {
7879 it::class == ReviewerControlPreference ::class
7980 } as List <ReviewerControlPreference >
8081
82+ @NeedsTest(" Ensure correct preference is returned for side-specific binding" )
83+ override fun getPreferenceAssignedTo (binding : Binding ): ControlPreference ? {
84+ val cardSide = side ? : return super .getPreferenceAssignedTo(binding)
85+ val reviewerBinding = ReviewerBinding (binding, cardSide)
86+ // Bindings only conflict when the card sides overlap
87+ return getRelatedPreferences().firstOrNull { preference ->
88+ reviewerBinding in preference.getMappableBindings()
89+ }
90+ }
91+
8192 fun interface OnBindingSelectedListener {
8293 /* *
8394 * Called when a binding is selected, before the side is set. This allows listeners
You can’t perform that action at this time.
0 commit comments