EtchDroid/app/src/main/java/eu/depau/etchdroid/worker/AbstractProgressSender.kt

24 lines
869 B
Kotlin

package eu.depau.etchdroid.worker
import eu.depau.etchdroid.worker.dto.ProgressDoneDTO
import eu.depau.etchdroid.worker.dto.ProgressStartDTO
import eu.depau.etchdroid.worker.dto.ProgressUpdateDTO
abstract class AbstractProgressSender : IProgressSender {
private val listeners = ArrayList<IProgressListener>()
override fun attachProgressListener(listener: IProgressListener) =
listeners.add(listener)
override fun detachProgressListener(listener: IProgressListener) =
listeners.remove(listener)
protected fun notifyStart(dto: ProgressStartDTO) =
listeners.forEach { it.notifyStart(dto) }
protected fun notifyProgress(dto: ProgressUpdateDTO) =
listeners.forEach { it.notifyProgress(dto) }
protected fun notifyDone(dto: ProgressDoneDTO) =
listeners.forEach { it.notifyDone(dto) }
}