0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 12:02:16 +02:00

Fix slow browser load in new backend

https://github.com/ankidroid/Anki-Android/pull/11644#issuecomment-1169380381

Closes #11733
This commit is contained in:
Damien Elmes 2022-06-29 09:48:47 +10:00 committed by Mike Hardy
parent 54c8426f8c
commit 46c4f4d501

View File

@ -16,6 +16,7 @@
package com.ichi2.libanki
import android.content.Context
import com.ichi2.async.CancelListener.Companion.isCancelled
import com.ichi2.async.CollectionTask
import com.ichi2.libanki.backend.*
import com.ichi2.libanki.backend.model.toProtoBuf
@ -93,11 +94,15 @@ class CollectionV16(
return TemplateManager.TemplateRenderContext.from_existing_card(c, browser).render()
}
@RustCleanup("drop the PartialSearch handling in the browse screen, which slows things down")
override fun findCards(
search: String,
order: SortOrder,
task: CollectionTask.PartialSearch?
): List<Long> {
if (task?.isCancelled() == true) {
return listOf()
}
val adjustedOrder = if (order is SortOrder.UseCollectionOrdering) {
@Suppress("DEPRECATION")
SortOrder.BuiltinSortKind(
@ -112,8 +117,12 @@ class CollectionV16(
} catch (e: BackendInvalidInputException) {
throw InvalidSearchException(e)
}
task?.doProgress(cardIdsList)
for (id in cardIdsList) {
if (task?.isCancelled() == true) {
break
}
task?.doProgress(listOf(id))
}
return cardIdsList
}