From a7214740ec4d4c3252dced35c91eab07b7e871f1 Mon Sep 17 00:00:00 2001 From: tarsin Date: Sat, 27 May 2023 20:01:26 +0800 Subject: [PATCH] Avoid mainthread db query --- app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt | 1 + .../java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 3 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 ebd124739..90eb485d2 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/SearchDao.kt @@ -20,6 +20,7 @@ interface SearchDao { fun addQuery(query: String) { deleteQuery(query) + if (query.isBlank()) return val search = Search(System.currentTimeMillis(), query) insert(search) } 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 26c2d60e7..52ed849eb 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 @@ -162,7 +162,7 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { if (!mAllowEmptySearch && query.isEmpty()) { return } - mSearchDatabase.addQuery(query) + lifecycleScope.launchIO { mSearchDatabase.addQuery(query) } onApplySearch(query) } @@ -285,8 +285,12 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { .setMessage(requireContext().getString(R.string.delete_search_history, mKeyword)) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.delete) { _, _ -> - mSearchDatabase.deleteQuery(mKeyword) - updateSuggestions(false) + lifecycleScope.launchIO { + mSearchDatabase.deleteQuery(mKeyword) + withUIContext { + updateSuggestions(false) + } + } } .show() return true