kunfei 4 лет назад
Родитель
Сommit
94a81eae14

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt

@@ -117,7 +117,7 @@ class ArrangeBookActivity : VMBaseActivity<ActivityArrangeBookBinding, ArrangeBo
                     size = viewModel.batchChangeSourceSize,
                     position = viewModel.batchChangeSourcePosition
                 ) {
-
+                    viewModel.batchChangeSourceCoroutine?.cancel()
                 }
             }
         }

+ 5 - 5
app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookViewModel.kt

@@ -15,6 +15,7 @@ class ArrangeBookViewModel(application: Application) : BaseViewModel(application
     val batchChangeSourceState = mutableStateOf(false)
     val batchChangeSourceSize = mutableStateOf(0)
     val batchChangeSourcePosition = mutableStateOf(0)
+    var batchChangeSourceCoroutine: Coroutine<Unit>? = null
 
     fun upCanUpdate(books: Array<Book>, canUpdate: Boolean) {
         execute {
@@ -37,17 +38,16 @@ class ArrangeBookViewModel(application: Application) : BaseViewModel(application
         }
     }
 
-    fun changeSource(books: Array<Book>, source: BookSource): Coroutine<Unit> {
-        return execute {
+    fun changeSource(books: Array<Book>, 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
         }