Updater cleanup and improvements (#416)

This commit is contained in:
Mitchell Syer
2022-10-11 12:27:15 -04:00
committed by GitHub
parent 71730fddad
commit 06eff55210
9 changed files with 100 additions and 108 deletions

View File

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