diff --git a/app/src/main/java/audio/funkwhale/ffa/FFA.kt b/app/src/main/java/audio/funkwhale/ffa/FFA.kt index 0b8fe9d..863dae4 100644 --- a/app/src/main/java/audio/funkwhale/ffa/FFA.kt +++ b/app/src/main/java/audio/funkwhale/ffa/FFA.kt @@ -12,7 +12,6 @@ import audio.funkwhale.ffa.utils.FFACache import audio.funkwhale.ffa.utils.Request import com.preference.PowerPreference import kotlinx.coroutines.channels.BroadcastChannel -import kotlinx.coroutines.channels.ConflatedBroadcastChannel import org.koin.core.context.startKoin import java.text.SimpleDateFormat import java.util.Date @@ -31,7 +30,6 @@ class FFA : Application() { val eventBus: BroadcastChannel = BroadcastChannel(10) val commandBus: BroadcastChannel = BroadcastChannel(10) val requestBus: BroadcastChannel = BroadcastChannel(10) - val progressBus: BroadcastChannel> = ConflatedBroadcastChannel() override fun onCreate() { super.onCreate() diff --git a/app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt b/app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt index 49e836c..7e24559 100644 --- a/app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt +++ b/app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt @@ -8,8 +8,9 @@ import com.google.android.exoplayer2.offline.DownloadCursor import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asFlow -import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.launch sealed class Command { @@ -105,13 +106,13 @@ object RequestBus { } object ProgressBus { + private var _progress = MutableStateFlow(Triple(0, 0, 0)) + val progress = _progress.asStateFlow() fun send(current: Int, duration: Int, percent: Int) { - GlobalScope.launch(IO) { - FFA.get().progressBus.send(Triple(current, duration, percent)) - } + _progress.value = Triple(current, duration, percent) } - fun get() = FFA.get().progressBus.asFlow().conflate() + fun get() = progress } suspend inline fun Channel.wait(): T? {