Anki-Android icon indicating copy to clipboard operation
Anki-Android copied to clipboard

Default search text for Browser as in Desktop

Open daddydave opened this issue 1 year ago • 5 comments

Is your feature request related to a problem? Please describe. When going into Browser on AnkiDroid, I often have to manually type in -is:suspended to hide the suspended cards.

Describe the solution you'd like Desktop Anki has a "Default search text" feature (Tools > Preferences > Editing tab > Browsing section. This would be nice to see in AnkiDroid as well. I suppose Settings > General would be a logical place to put it, but no strong opinions on that.

Describe alternatives you've considered Manually typing -is:suspended each time to hide suspended cards

Additional context Here it is in Desktop Anki. image

daddydave avatar Apr 18 '24 15:04 daddydave

https://github.com/ankitects/anki/commit/114eec6585fd7e4b016ef2c3c88981739ba4e8af

david-allison avatar Apr 18 '24 15:04 david-allison

Taking it up, @david-allison what is the use case for the changes you mentioned? We will be using shared pref if I am right in AnkiDroid

criticalAY avatar Apr 18 '24 16:04 criticalAY

Use case: https://forums.ankiweb.net/t/whats-the-default-search-when-browsing-now-also-how-do-i-choose-to-browse-current-deck/8922

Might want to block this on

  • https://github.com/ankidroid/Anki-Android/pull/16128

As listed in the patch above, load from the collection config.

Rough patch, thoroughly untested

Subject: [PATCH] 
---
Index: AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt
--- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt	(revision a75ef34cf93c809931752f986f7b7ef95d51480b)
+++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt	(date 1713457319384)
@@ -21,6 +21,7 @@
 import androidx.lifecycle.viewModelScope
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
+import anki.config.ConfigKey
 import com.ichi2.anki.AnkiDroidApp
 import com.ichi2.anki.CardBrowser
 import com.ichi2.anki.CollectionManager.withCol
@@ -233,6 +234,11 @@
         viewModelScope.launch {
             // PERF: slightly inefficient if the source was lastDeckId
             setDeckId(getInitialDeck())
+            flowOfSearchTerms.update {
+                getDefaultSearchText().also { searchText ->
+                    Timber.d("default search text: %s", searchText)
+                }
+            }
             val cardsOrNotes = withCol { CardsOrNotes.fromCollection() }
             flowOfCardsOrNotes.update { cardsOrNotes }
 
@@ -245,6 +251,9 @@
         }
     }
 
+    private suspend fun getDefaultSearchText(): String =
+        withCol { config.getString(ConfigKey.String.DEFAULT_SEARCH_TEXT) }
+
     /** Whether any rows are selected */
     fun hasSelectedAnyRows(): Boolean = selectedRows.isNotEmpty()
 
Index: AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt
--- a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt	(revision a75ef34cf93c809931752f986f7b7ef95d51480b)
+++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt	(date 1713456221276)
@@ -55,6 +55,10 @@
         return backend.getConfigBool(key)
     }
 
+    fun getString(key: ConfigKey.String): String {
+        return backend.getConfigString(key)
+    }
+
     fun setBool(key: ConfigKey.Bool, value: Boolean) {
         backend.setConfigBool(key, value, false)
     }

david-allison avatar Apr 18 '24 17:04 david-allison

Ahh the card browser refactor, umm lets wait then its pending for a long time now.

criticalAY avatar Apr 18 '24 17:04 criticalAY

I am also struggling with this. I tried using the JS solution from #9247 to make buttons but failed miserably. This suggestion would also work for me. I have all my cards tagged with the kanji present in their main field. On the PC, I use an addon to add tags as clickable buttons. They open the search using "tag: "kanji")". With this, I can check cards with the same kanji. It's a great tool for studying new cards and to hammer down cards you keep failing.

Nightdkz avatar May 12 '24 15:05 Nightdkz

  • Fixed in #17911

lukstbit avatar Feb 14 '25 07:02 lukstbit