This commit is contained in:
kunfei
2023-01-10 09:38:30 +08:00
parent cadff84bc3
commit 50d5845638
2 changed files with 7 additions and 3 deletions
@@ -12,7 +12,7 @@ import io.legado.app.data.entities.SearchBook
import io.legado.app.data.entities.SearchKeyword
import io.legado.app.help.config.AppConfig
import io.legado.app.model.webBook.SearchModel
import io.legado.app.utils.DelayLiveData
import io.legado.app.utils.ConflateLiveData
import io.legado.app.utils.toastOnUi
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.mapLatest
@@ -22,7 +22,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application) {
val handler = Handler(Looper.getMainLooper())
val bookshelf = hashSetOf<String>()
val upAdapterLiveData = MutableLiveData<String>()
var searchBookLiveData = DelayLiveData<List<SearchBook>>(1000)
var searchBookLiveData = ConflateLiveData<List<SearchBook>>(1000)
val searchScope: SearchScope = SearchScope(AppConfig.searchScope)
var searchFinishCallback: ((isEmpty: Boolean) -> Unit)? = null
var isSearchLiveData = MutableLiveData<Boolean>()
@@ -4,7 +4,11 @@ import android.os.Handler
import android.os.Looper
import androidx.lifecycle.LiveData
class DelayLiveData<T>(val delay: Int) : LiveData<T>() {
/**
* 合并发送,只发送最新数据
* @param delay 发送时间间隔
*/
class ConflateLiveData<T>(val delay: Int) : LiveData<T>() {
private val handler = Handler(Looper.getMainLooper())
private val sendRunnable = Runnable { sendData() }
private var postTime = 0L