0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-19 19:42:17 +02:00

add filtered deck option to browser

This commit is contained in:
MorenoTropical 2024-09-01 07:43:10 -03:00 committed by lukstbit
parent 733cecac82
commit fa53c16fc2
3 changed files with 31 additions and 0 deletions

View File

@ -77,6 +77,7 @@ import com.ichi2.anki.dialogs.CardBrowserMySearchesDialog
import com.ichi2.anki.dialogs.CardBrowserMySearchesDialog.Companion.newInstance
import com.ichi2.anki.dialogs.CardBrowserMySearchesDialog.MySearchesDialogListener
import com.ichi2.anki.dialogs.CardBrowserOrderDialog
import com.ichi2.anki.dialogs.CreateDeckDialog
import com.ichi2.anki.dialogs.DeckSelectionDialog
import com.ichi2.anki.dialogs.DeckSelectionDialog.Companion.newInstance
import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener
@ -941,6 +942,7 @@ open class CardBrowser :
subMenu ->
setupFlags(subMenu, Mode.SINGLE_SELECT)
}
menu.findItem(R.id.action_create_filtered_deck).title = TR.qtMiscCreateFilteredDeck()
saveSearchItem = menu.findItem(R.id.action_save_search)
saveSearchItem?.isVisible = false // the searchview's query always starts empty.
mySearchesItem = menu.findItem(R.id.action_list_my_searches)
@ -1265,10 +1267,27 @@ open class CardBrowser :
R.id.action_export_selected -> {
exportSelected()
}
R.id.action_create_filtered_deck -> {
showCreateFilteredDeckDialog()
}
}
return super.onOptionsItemSelected(item)
}
private fun showCreateFilteredDeckDialog() {
val dialog = CreateDeckDialog(this, R.string.new_deck, CreateDeckDialog.DeckDialogType.FILTERED_DECK, null)
dialog.onNewDeckCreated = {
val intent = Intent(this, FilteredDeckOptions::class.java)
intent.putExtra("search", viewModel.searchTerms)
startActivity(intent)
}
launchCatchingTask {
withProgress {
dialog.showFilteredDeckDialog()
}
}
}
/**
* @see CardBrowserViewModel.searchForSuspendedCards
*/

View File

@ -26,6 +26,7 @@ import android.preference.EditTextPreference
import android.preference.ListPreference
import android.preference.Preference
import android.preference.PreferenceCategory
import androidx.core.content.edit
import com.ichi2.anki.analytics.UsageAnalytics
import com.ichi2.annotations.NeedsTest
import com.ichi2.libanki.Collection
@ -222,6 +223,11 @@ class FilteredDeckOptions :
} else {
pref = DeckPreferenceHack()
pref.registerOnSharedPreferenceChangeListener(this)
extras?.getString("search")?.let { search ->
pref.edit {
putString("search", search)
}
}
addPreferences(col)
buildLists()
updateSummaries()

View File

@ -63,4 +63,10 @@
android:title="@string/study_options"
ankidroid:showAsAction="never"/>
<item
android:id="@+id/action_create_filtered_deck"
ankidroid:showAsAction="never"
tools:title="Create filtered deck..."
/>
</menu>