添加批量换源
This commit is contained in:
@@ -117,7 +117,7 @@ class ArrangeBookActivity : VMBaseActivity<ActivityArrangeBookBinding, ArrangeBo
|
|||||||
size = viewModel.batchChangeSourceSize,
|
size = viewModel.batchChangeSourceSize,
|
||||||
position = viewModel.batchChangeSourcePosition
|
position = viewModel.batchChangeSourcePosition
|
||||||
) {
|
) {
|
||||||
|
viewModel.batchChangeSourceCoroutine?.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class ArrangeBookViewModel(application: Application) : BaseViewModel(application
|
|||||||
val batchChangeSourceState = mutableStateOf(false)
|
val batchChangeSourceState = mutableStateOf(false)
|
||||||
val batchChangeSourceSize = mutableStateOf(0)
|
val batchChangeSourceSize = mutableStateOf(0)
|
||||||
val batchChangeSourcePosition = mutableStateOf(0)
|
val batchChangeSourcePosition = mutableStateOf(0)
|
||||||
|
var batchChangeSourceCoroutine: Coroutine<Unit>? = null
|
||||||
|
|
||||||
fun upCanUpdate(books: Array<Book>, canUpdate: Boolean) {
|
fun upCanUpdate(books: Array<Book>, canUpdate: Boolean) {
|
||||||
execute {
|
execute {
|
||||||
@@ -37,17 +38,16 @@ class ArrangeBookViewModel(application: Application) : BaseViewModel(application
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun changeSource(books: Array<Book>, source: BookSource): Coroutine<Unit> {
|
fun changeSource(books: Array<Book>, source: BookSource) {
|
||||||
return execute {
|
batchChangeSourceCoroutine?.cancel()
|
||||||
|
batchChangeSourceCoroutine = execute {
|
||||||
batchChangeSourceSize.value = books.size
|
batchChangeSourceSize.value = books.size
|
||||||
books.forEachIndexed { index, book ->
|
books.forEachIndexed { index, book ->
|
||||||
batchChangeSourcePosition.value = index + 1
|
batchChangeSourcePosition.value = index + 1
|
||||||
WebBook.preciseSearchAwait(this, book.name, book.author, source)?.let {
|
WebBook.preciseSearchAwait(this, book.name, book.author, source)?.let {
|
||||||
|
book.changeTo(it.second)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.onCancel {
|
|
||||||
batchChangeSourceState.value = false
|
|
||||||
}.onFinally {
|
}.onFinally {
|
||||||
batchChangeSourceState.value = false
|
batchChangeSourceState.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user