Skip to content

Commit 971ee0c

Browse files
lukstbitmikehardy
authored andcommitted
Add collection extensions related to deck selection
One method to retrieve the 'Default' deck which is always available. One method to retrieve the current selected deck if it's not a filtered deck in which case return the 'Default' deck.
1 parent 2644a6d commit 971ee0c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/DeckSpinnerSelection.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package com.ichi2.anki
1818
import androidx.fragment.app.Fragment
1919
import com.ichi2.anki.CollectionManager.withCol
2020
import com.ichi2.anki.dialogs.DeckSelectionDialog
21+
import com.ichi2.anki.libanki.Collection
22+
import com.ichi2.anki.libanki.Deck
2123
import com.ichi2.anki.libanki.DeckId
2224
import com.ichi2.anki.model.SelectableDeck
2325

@@ -33,6 +35,18 @@ import com.ichi2.anki.model.SelectableDeck
3335
*/
3436
const val ALL_DECKS_ID = 0L
3537

38+
/**
39+
* Returns the current selected deck only if it's not filtered otherwise returns the 'Default' deck.
40+
*/
41+
fun Collection.selectedDeckIfNotFiltered(): Deck {
42+
val selectedDeck = decks.getLegacy(decks.selected())
43+
return if (selectedDeck == null || selectedDeck.isFiltered) {
44+
decks.getDefault()
45+
} else {
46+
selectedDeck
47+
}
48+
}
49+
3650
/**
3751
* Displays a [DeckSelectionDialog] for the user to select a deck, with the list of displayed decks
3852
* filtered based on the parameters of this method.

libanki/src/main/java/com/ichi2/anki/libanki/Decks.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,12 @@ class Decks(
693693
@NotInLibAnki
694694
fun isEmpty(did: DeckId): Boolean = cardCount(did) == 0
695695

696+
/**
697+
* Retrieve the 'Default' deck which is always available.
698+
*/
699+
@NotInLibAnki
700+
fun getDefault(): Deck = getLegacy(Consts.DEFAULT_DECK_ID)!!
701+
696702
companion object {
697703
// Parents/children
698704

0 commit comments

Comments
 (0)