Skip to content

Commit a33be05

Browse files
dorrin-sotmikehardy
authored andcommitted
Fix #17892 Duplicate Due column in Card Browser
- Added Unit test for Fix #17892 Duplicate Due column in Card Browser
1 parent 860e270 commit a33be05

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/browser/BrowserColumnCollection.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ class BrowserColumnCollection(
6666
val value = mode.defaultColumns()
6767
value.split(SEPARATOR_CHAR).map { CardBrowserColumn.fromColumnKey(it) }
6868
}
69-
return BrowserColumnCollection(columns)
69+
// shared preferences had duplicate columns for unknown reasons
70+
// this removes duplicates on load, any saves will be de-duplicated
71+
return BrowserColumnCollection(columns.distinct())
7072
}
7173

7274
class ColumnReplacement(

AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,27 @@ class CardBrowserTest : RobolectricTest() {
11531153
assertThat("column 2 reset to default", cardBrowser.columnHeadings[1], equalTo("Card Type"))
11541154
}
11551155

1156+
@Test
1157+
fun `loading duplicate columns returns distinct`() {
1158+
// GIVEN: Shared preferences exists for display column selections
1159+
// with duplicate values
1160+
getSharedPrefs().edit {
1161+
putString(BrowserConfig.ACTIVE_CARD_COLUMNS_KEY, "question|cardDue|cardDue|deck")
1162+
}
1163+
1164+
// WHEN: CardBrowser is created
1165+
val cardBrowser: CardBrowser = getBrowserWithNotes(7)
1166+
1167+
// THEN: CardBrowser only shows distinct columns.
1168+
for ((i, column) in listOf("Question", "Due", "Deck").withIndex()) {
1169+
assertThat(
1170+
"column ${i + 1} reset to default",
1171+
cardBrowser.columnHeadings[i],
1172+
equalTo(column),
1173+
)
1174+
}
1175+
}
1176+
11561177
@Test
11571178
@Ignore("issues with launchCollectionInLifecycleScope")
11581179
fun `column titles update when moving to notes mode`() =

0 commit comments

Comments
 (0)