Merge remote-tracking branch 'origin/master'

This commit is contained in:
kunfei 2023-08-02 22:34:32 +08:00
commit f543d3429e
3 changed files with 23 additions and 23 deletions

View File

@ -13,6 +13,7 @@ import io.legado.app.utils.getPrefBoolean
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExecutorCoroutineDispatcher
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.isActive
import splitties.init.appCtx
import java.util.concurrent.Executors
@ -76,23 +77,24 @@ class SearchModel(private val scope: CoroutineScope, private val callBack: CallB
}
searchIndex++
val source = bookSourceList[searchIndex]
searchPool?.let { searchPool ->
val task = WebBook.searchBook(
scope,
source,
searchKey,
searchPage,
context = searchPool,
executeContext = searchPool
).timeout(30000L)
.onSuccess {
onSuccess(searchId, it)
}
.onFinally {
onFinally(searchId)
}
tasks.add(task)
}
val searchPool = searchPool ?: return
val task = WebBook.searchBook(
scope,
source,
searchKey,
searchPage,
context = searchPool,
executeContext = searchPool
).timeout(30000L)
.onSuccess {
ensureActive()
onSuccess(searchId, it)
}
.onFinally {
ensureActive()
onFinally(searchId)
}
tasks.add(task)
}
@Synchronized

View File

@ -282,16 +282,14 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
private fun receiptIntent(intent: Intent? = null) {
val searchScope = intent?.getStringExtra("searchScope")
searchScope?.let {
viewModel.searchScope.update(searchScope)
viewModel.searchScope.update(searchScope, false)
}
val key = intent?.getStringExtra("key")
if (key.isNullOrBlank()) {
searchView.findViewById<TextView>(androidx.appcompat.R.id.search_src_text)
.requestFocus()
} else {
searchView.post {
searchView.setQuery(key, true)
}
searchView.setQuery(key, true)
}
}

View File

@ -31,9 +31,9 @@ data class SearchScope(private var scope: String) {
val stateLiveData = MutableLiveData(scope)
fun update(scope: String) {
fun update(scope: String, postValue: Boolean = true) {
this.scope = scope
stateLiveData.postValue(scope)
if (postValue) stateLiveData.postValue(scope)
save()
}