diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index e3cf03860..d0505c873 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -78,33 +78,9 @@ class SearchActivity : VMBaseActivity Unit = searchFinish@{ isEmpty -> - if (!isEmpty || viewModel.searchScope.isAll()) return@searchFinish - lifecycleScope.launch { - alert("搜索结果为空") { - val precisionSearch = appCtx.getPrefBoolean(PreferKey.precisionSearch) - if (precisionSearch) { - setMessage("${viewModel.searchScope.display}分组搜索结果为空,是否关闭精准搜索?") - yesButton { - appCtx.putPrefBoolean(PreferKey.precisionSearch, false) - precisionSearchMenuItem?.isChecked = false - viewModel.searchKey = "" - viewModel.search(searchView.query.toString()) - } - } else { - setMessage("${viewModel.searchScope.display}分组搜索结果为空,是否切换到全部分组?") - yesButton { - viewModel.searchScope.update("") - } - } - noButton() - } - } - } override fun onActivityCreated(savedInstanceState: Bundle?) { binding.llInputHelp.setBackgroundColor(backgroundColor) - viewModel.searchFinishCallback = searchFinishCallback initRecyclerView() initSearchView() initOtherView() @@ -403,6 +379,27 @@ class SearchActivity : VMBaseActivity + if (!isEmpty || viewModel.searchScope.isAll()) return@observe + alert("搜索结果为空") { + val precisionSearch = appCtx.getPrefBoolean(PreferKey.precisionSearch) + if (precisionSearch) { + setMessage("${viewModel.searchScope.display}分组搜索结果为空,是否关闭精准搜索?") + yesButton { + appCtx.putPrefBoolean(PreferKey.precisionSearch, false) + precisionSearchMenuItem?.isChecked = false + viewModel.searchKey = "" + viewModel.search(searchView.query.toString()) + } + } else { + setMessage("${viewModel.searchScope.display}分组搜索结果为空,是否切换到全部分组?") + yesButton { + viewModel.searchScope.update("") + } + } + noButton() + } + } } /** diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt index 80609f2ad..8a6efcecc 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt @@ -25,7 +25,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application) { val upAdapterLiveData = MutableLiveData() var searchBookLiveData = ConflateLiveData>(1000) val searchScope: SearchScope = SearchScope(AppConfig.searchScope) - var searchFinishCallback: ((isEmpty: Boolean) -> Unit)? = null + var searchFinishLiveData = MutableLiveData() var isSearchLiveData = MutableLiveData() var searchKey: String = "" private var searchID = 0L @@ -45,7 +45,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application) { override fun onSearchFinish(isEmpty: Boolean) { isSearchLiveData.postValue(false) - searchFinishCallback?.invoke(isEmpty) + searchFinishLiveData.postValue(isEmpty) } override fun onSearchCancel(exception: Exception?) {