RequentBus: replace deprecated implementation.

Convert RequestBus from deprecated BroadcastChannel to a SharedFlow.
This commit is contained in:
Hugh Daschbach 2022-08-20 17:18:47 -07:00 committed by Ryan Harg
parent 1a038b2355
commit 4827fbccc1
No known key found for this signature in database
GPG Key ID: 89106F3A84E6958C
2 changed files with 4 additions and 8 deletions

View File

@ -7,9 +7,7 @@ import audio.funkwhale.ffa.koin.authModule
import audio.funkwhale.ffa.koin.exoplayerModule import audio.funkwhale.ffa.koin.exoplayerModule
import audio.funkwhale.ffa.utils.AppContext import audio.funkwhale.ffa.utils.AppContext
import audio.funkwhale.ffa.utils.FFACache import audio.funkwhale.ffa.utils.FFACache
import audio.funkwhale.ffa.utils.Request
import com.preference.PowerPreference import com.preference.PowerPreference
import kotlinx.coroutines.channels.BroadcastChannel
import org.koin.core.context.startKoin import org.koin.core.context.startKoin
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
@ -25,8 +23,6 @@ class FFA : Application() {
var defaultExceptionHandler: Thread.UncaughtExceptionHandler? = null var defaultExceptionHandler: Thread.UncaughtExceptionHandler? = null
val requestBus: BroadcastChannel<Request> = BroadcastChannel(10)
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()

View File

@ -1,6 +1,5 @@
package audio.funkwhale.ffa.utils package audio.funkwhale.ffa.utils
import audio.funkwhale.ffa.FFA
import audio.funkwhale.ffa.model.Radio import audio.funkwhale.ffa.model.Radio
import audio.funkwhale.ffa.model.Track import audio.funkwhale.ffa.model.Track
import com.google.android.exoplayer2.offline.Download import com.google.android.exoplayer2.offline.Download
@ -12,7 +11,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.asFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
sealed class Command { sealed class Command {
@ -98,17 +96,19 @@ object CommandBus {
} }
object RequestBus { object RequestBus {
private var _requests = MutableSharedFlow<Request>()
var requests = _requests.asSharedFlow()
fun send(request: Request): Channel<Response> { fun send(request: Request): Channel<Response> {
return Channel<Response>().also { return Channel<Response>().also {
GlobalScope.launch(IO) { GlobalScope.launch(IO) {
request.channel = it request.channel = it
FFA.get().requestBus.trySend(request).isSuccess _requests.emit(request)
} }
} }
} }
fun get() = FFA.get().requestBus.asFlow() fun get() = requests
} }
object ProgressBus { object ProgressBus {