mirror of
https://github.com/gedoor/legado.git
synced 2024-08-30 09:23:26 +08:00
优化
This commit is contained in:
parent
8c88ded53d
commit
8ff5b2abf9
@ -78,33 +78,9 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
|
||||
private var booksFlowJob: Job? = null
|
||||
private var precisionSearchMenuItem: MenuItem? = null
|
||||
private var isManualStopSearch = false
|
||||
private val searchFinishCallback: (isEmpty: Boolean) -> 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<ActivityBookSearchBinding, SearchViewModel
|
||||
viewModel.upAdapterLiveData.observe(this) {
|
||||
adapter.notifyItemRangeChanged(0, adapter.itemCount, it)
|
||||
}
|
||||
viewModel.searchFinishLiveData.observe(this) { isEmpty ->
|
||||
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,7 +25,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application) {
|
||||
val upAdapterLiveData = MutableLiveData<String>()
|
||||
var searchBookLiveData = ConflateLiveData<List<SearchBook>>(1000)
|
||||
val searchScope: SearchScope = SearchScope(AppConfig.searchScope)
|
||||
var searchFinishCallback: ((isEmpty: Boolean) -> Unit)? = null
|
||||
var searchFinishLiveData = MutableLiveData<Boolean>()
|
||||
var isSearchLiveData = MutableLiveData<Boolean>()
|
||||
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?) {
|
||||
|
Loading…
Reference in New Issue
Block a user