优化
This commit is contained in:
@@ -78,33 +78,9 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
|
|||||||
private var booksFlowJob: Job? = null
|
private var booksFlowJob: Job? = null
|
||||||
private var precisionSearchMenuItem: MenuItem? = null
|
private var precisionSearchMenuItem: MenuItem? = null
|
||||||
private var isManualStopSearch = false
|
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?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
binding.llInputHelp.setBackgroundColor(backgroundColor)
|
binding.llInputHelp.setBackgroundColor(backgroundColor)
|
||||||
viewModel.searchFinishCallback = searchFinishCallback
|
|
||||||
initRecyclerView()
|
initRecyclerView()
|
||||||
initSearchView()
|
initSearchView()
|
||||||
initOtherView()
|
initOtherView()
|
||||||
@@ -403,6 +379,27 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
|
|||||||
viewModel.upAdapterLiveData.observe(this) {
|
viewModel.upAdapterLiveData.observe(this) {
|
||||||
adapter.notifyItemRangeChanged(0, adapter.itemCount, it)
|
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>()
|
val upAdapterLiveData = MutableLiveData<String>()
|
||||||
var searchBookLiveData = ConflateLiveData<List<SearchBook>>(1000)
|
var searchBookLiveData = ConflateLiveData<List<SearchBook>>(1000)
|
||||||
val searchScope: SearchScope = SearchScope(AppConfig.searchScope)
|
val searchScope: SearchScope = SearchScope(AppConfig.searchScope)
|
||||||
var searchFinishCallback: ((isEmpty: Boolean) -> Unit)? = null
|
var searchFinishLiveData = MutableLiveData<Boolean>()
|
||||||
var isSearchLiveData = MutableLiveData<Boolean>()
|
var isSearchLiveData = MutableLiveData<Boolean>()
|
||||||
var searchKey: String = ""
|
var searchKey: String = ""
|
||||||
private var searchID = 0L
|
private var searchID = 0L
|
||||||
@@ -45,7 +45,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
|
|
||||||
override fun onSearchFinish(isEmpty: Boolean) {
|
override fun onSearchFinish(isEmpty: Boolean) {
|
||||||
isSearchLiveData.postValue(false)
|
isSearchLiveData.postValue(false)
|
||||||
searchFinishCallback?.invoke(isEmpty)
|
searchFinishLiveData.postValue(isEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSearchCancel(exception: Exception?) {
|
override fun onSearchCancel(exception: Exception?) {
|
||||||
|
|||||||
Reference in New Issue
Block a user