diff --git a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt index d151c84e1..85c67d54c 100644 --- a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt @@ -117,7 +117,7 @@ class ArrangeBookActivity : VMBaseActivity? = null fun upCanUpdate(books: Array, canUpdate: Boolean) { execute { @@ -37,17 +38,16 @@ class ArrangeBookViewModel(application: Application) : BaseViewModel(application } } - fun changeSource(books: Array, source: BookSource): Coroutine { - return execute { + fun changeSource(books: Array, source: BookSource) { + batchChangeSourceCoroutine?.cancel() + batchChangeSourceCoroutine = execute { batchChangeSourceSize.value = books.size books.forEachIndexed { index, book -> batchChangeSourcePosition.value = index + 1 WebBook.preciseSearchAwait(this, book.name, book.author, source)?.let { - + book.changeTo(it.second) } } - }.onCancel { - batchChangeSourceState.value = false }.onFinally { batchChangeSourceState.value = false }