This commit is contained in:
Horis
2024-07-27 09:04:48 +08:00
parent c7fdefbb21
commit 25fef4cfc3
@@ -114,6 +114,7 @@ abstract class RecyclerAdapter<ITEM, VB : ViewBinding>(protected val context: Co
) { ) {
kotlin.runCatching { kotlin.runCatching {
val oldItems = this.items.toList() val oldItems = this.items.toList()
val itemsSize = items?.size ?: 0
val callback = object : DiffUtil.Callback() { val callback = object : DiffUtil.Callback() {
override fun getOldListSize(): Int { override fun getOldListSize(): Int {
return itemCount return itemCount
@@ -153,9 +154,9 @@ abstract class RecyclerAdapter<ITEM, VB : ViewBinding>(protected val context: Co
diffJob?.cancel() diffJob?.cancel()
diffJob = Coroutine.async { diffJob = Coroutine.async {
val diffResult = if (skipDiff) withTimeoutOrNullAsync(500L) { val diffResult = if (skipDiff) withTimeoutOrNullAsync(500L) {
DiffUtil.calculateDiff(callback) DiffUtil.calculateDiff(callback, itemsSize < 2000)
} else { } else {
DiffUtil.calculateDiff(callback) DiffUtil.calculateDiff(callback, itemsSize < 2000)
} }
ensureActive() ensureActive()
handler.post { handler.post {