From e2d03eb9280e7da13f1c46b1e99404edc28cc288 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 12 Jul 2023 09:26:20 +0800 Subject: [PATCH] Purify SearchDao --- .../main/java/com/hippo/ehviewer/dao/SearchDao.kt | 9 --------- .../com/hippo/ehviewer/ui/scene/SearchBarScene.kt | 13 ++++++++++++- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt b/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt index e5445d625..3304e1721 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt @@ -17,13 +17,4 @@ interface SearchDao { @Insert suspend fun insert(search: Search) - - suspend fun addQuery(query: String) { - deleteQuery(query) - if (query.isBlank()) return - val search = Search(System.currentTimeMillis(), query) - insert(search) - } - - suspend fun suggestions(prefix: String, limit: Int) = (if (prefix.isBlank()) list(limit) else rawSuggestions(prefix, limit)).map { it.query } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index c7a71c626..b0f569045 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -22,6 +22,8 @@ import com.google.android.material.shape.MaterialShapeDrawable import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase +import com.hippo.ehviewer.dao.Search +import com.hippo.ehviewer.dao.SearchDao import com.hippo.ehviewer.dao.SearchDatabase import com.hippo.ehviewer.databinding.ItemSimpleList2Binding import com.hippo.ehviewer.databinding.SceneSearchbarBinding @@ -163,6 +165,13 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { onApplySearch = lambda } + private suspend fun addQuery(query: String) { + mSearchDatabase.deleteQuery(query) + if (query.isBlank()) return + val search = Search(System.currentTimeMillis(), query) + mSearchDatabase.insert(search) + } + fun onApplySearch() { binding.toolbar.setText(binding.searchview.text) binding.searchview.hide() @@ -170,7 +179,7 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { if (!mAllowEmptySearch && query.isEmpty()) { return } - lifecycleScope.launchIO { mSearchDatabase.addQuery(query) } + lifecycleScope.launchIO { addQuery(query) } onApplySearch(query) } @@ -326,6 +335,8 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { } } + private suspend fun SearchDao.suggestions(prefix: String, limit: Int) = (if (prefix.isBlank()) list(limit) else rawSuggestions(prefix, limit)).map { it.query } + private fun mergedSuggestionFlow(): Flow = flow { binding.searchview.editText.text?.toString()?.let { text -> mSuggestionProvider?.run { providerSuggestions(text)?.forEach { emit(it) } }