Fix SearchDatabase query

This commit is contained in:
tarsin committed 2023-05-27 19:56:38 +08:00
1 parent 5e14dad961
commit 17fb0f724c
2 files changed
+8 -6

No files matched your search

@@ -6,11 +6,14 @@ import androidx.room.Query
@Dao
interface SearchDao {
@Query("DELETE FROM suggestions WHERE query = :query")
@Query("DELETE FROM suggestions WHERE `query` = :query")
fun deleteQuery(query: String)
@Query("SELECT * FROM suggestions")
fun rawSuggestions(): Array<Search>
@Query("SELECT * FROM suggestions WHERE `query` LIKE :prefix || '%' ORDER BY date DESC LIMIT :limit")
fun rawSuggestions(prefix: String, limit: Int): Array<Search>
@Query("SELECT * FROM suggestions ORDER BY date DESC LIMIT :limit")
fun list(limit: Int): Array<Search>
@Insert
fun insert(search: Search)
@@ -21,5 +24,5 @@ interface SearchDao {
insert(search)
}
fun suggestions(prefix: String, limit: Int) = rawSuggestions().map { it.query }.toTypedArray()
fun suggestions(prefix: String, limit: Int) = (if (prefix.isBlank()) list(limit) else rawSuggestions(prefix, limit)).map { it.query }
}
@@ -318,8 +318,7 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene {
EhTagDatabase.takeIf { it.isInitialized() }?.run {
if (text.isNotEmpty() && !text.endsWith(' ')) {
val keyword = text.substringAfterLast(' ')
val translate =
Settings.showTagTranslations && isTranslatable(requireContext())
val translate = Settings.showTagTranslations && isTranslatable(requireContext())
suggestFlow(keyword, translate, true).collect {
emit(TagSuggestion(it.first, it.second))
}