添加批量换源

pull/1751/head
kunfei 3 years ago
parent 2b3e3b7618
commit 617231a742
  1. 2
      app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt
  2. 10
      app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookViewModel.kt

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

@ -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
}

Loading…
Cancel
Save