mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-12 15:24:33 -05:00
Updater cleanup and improvements (#416)
This commit is contained in:
@@ -2,23 +2,30 @@ package suwayomi.tachidesk.manga.impl.update
|
||||
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass
|
||||
import java.util.concurrent.CopyOnWriteArrayList
|
||||
|
||||
class TestUpdater : IUpdater {
|
||||
private val updateQueue = ArrayList<UpdateJob>()
|
||||
private val updateQueue = CopyOnWriteArrayList<UpdateJob>()
|
||||
private var isRunning = false
|
||||
private val _status = MutableStateFlow(UpdateStatus())
|
||||
override val status: StateFlow<UpdateStatus> = _status.asStateFlow()
|
||||
|
||||
override fun addMangaToQueue(manga: MangaDataClass) {
|
||||
updateQueue.add(UpdateJob(manga))
|
||||
isRunning = true
|
||||
updateStatus()
|
||||
}
|
||||
|
||||
override fun getStatus(): StateFlow<UpdateStatus> {
|
||||
return MutableStateFlow(UpdateStatus(updateQueue, isRunning))
|
||||
}
|
||||
|
||||
override suspend fun reset() {
|
||||
override fun reset() {
|
||||
updateQueue.clear()
|
||||
isRunning = false
|
||||
updateStatus()
|
||||
}
|
||||
|
||||
private fun updateStatus() {
|
||||
_status.update { UpdateStatus(updateQueue.toList(), isRunning) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user