File tree Expand file tree Collapse file tree
main/java/com/ichi2/anki/browser
test/java/com/ichi2/anki/browser Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -62,34 +62,22 @@ class ColumnWithSample(
6262 ): BrowserRow ? {
6363 if (id == null ) return null
6464
65- // save the current columns
66- val originalColumns =
65+ val originalKeys =
6766 BrowserColumnCollection
68- .replace(
69- AnkiDroidApp .sharedPrefs(),
70- cardsOrNotes,
71- CardBrowserColumn .entries,
72- ).let { result ->
73- CollectionManager .withCol { backend.setActiveBrowserColumns(result.newColumns.backendKeys) }
74- result.originalColumns
75- }
67+ .load(AnkiDroidApp .sharedPrefs(), cardsOrNotes)
68+ .backendKeys
69+ .toList()
7670
77- // obtain a sample row
78- val sampleRow: BrowserRow =
79- CollectionManager .withCol { browserRowForId(id.cardOrNoteId) }
80- Timber .d(" got sample row" )
81-
82- // restore the past values
83- BrowserColumnCollection
84- .replace(
85- AnkiDroidApp .sharedPrefs(),
86- cardsOrNotes,
87- originalColumns,
88- ).also { result ->
89- CollectionManager .withCol { backend.setActiveBrowserColumns(result.newColumns.backendKeys) }
90- }
91-
92- return sampleRow
71+ return try {
72+ val allKeys = CardBrowserColumn .entries.map { it.ankiColumnKey }
73+ CollectionManager
74+ .withCol {
75+ backend.setActiveBrowserColumns(allKeys)
76+ browserRowForId(id.cardOrNoteId)
77+ }.also { Timber .d(" got sample row" ) }
78+ } finally {
79+ CollectionManager .withCol { backend.setActiveBrowserColumns(originalKeys) }
80+ }
9381 }
9482 }
9583}
Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ import com.ichi2.anki.browser.RepositionCardsRequest.RepositionData
6262import com.ichi2.anki.browser.search.SavedSearch
6363import com.ichi2.anki.export.ExportDialogFragment
6464import com.ichi2.anki.flagCardForNote
65+ import com.ichi2.anki.libanki.BrowserConfig
6566import com.ichi2.anki.libanki.Card
6667import com.ichi2.anki.libanki.CardId
6768import com.ichi2.anki.libanki.CardType
@@ -1245,6 +1246,21 @@ class CardBrowserViewModelTest : JvmTest() {
12451246 }
12461247 }
12471248
1249+ @Test
1250+ fun `preview does not write to SharedPreferences - issue 19885` () =
1251+ runViewModelTest(notes = 1 ) {
1252+ // A crash/close here caused all columns to be visible.
1253+ sharedPrefs().edit { remove(BrowserConfig .ACTIVE_CARD_COLUMNS_KEY ) }
1254+
1255+ previewColumnHeadings(CardsOrNotes .CARDS )
1256+
1257+ assertThat(
1258+ " activeCols must not be written during preview" ,
1259+ sharedPrefs().contains(BrowserConfig .ACTIVE_CARD_COLUMNS_KEY ),
1260+ equalTo(false ),
1261+ )
1262+ }
1263+
12481264 @Suppress(" SpellCheckingInspection" ) // German
12491265 @Test
12501266 fun `columns headings - language change` () =
You can’t perform that action at this time.
0 commit comments