Skip to content

Commit 757f342

Browse files
manocormenBrayanDSO
authored andcommitted
Fix controls: warn only on true binding conflict
1 parent ec87ac1 commit 757f342

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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) {

AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import android.content.Context
1919
import android.util.AttributeSet
2020
import com.ichi2.anki.R
2121
import com.ichi2.anki.cardviewer.GestureProcessor
22+
import com.ichi2.anki.common.annotations.NeedsTest
2223
import com.ichi2.anki.dialogs.CardSideSelectionDialog
2324
import com.ichi2.anki.preferences.allPreferences
2425
import 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

0 commit comments

Comments
 (0)