Browse Source

RequentBus: replace deprecated implementation.

Convert RequestBus from deprecated BroadcastChannel to a SharedFlow.
technical/upgrade-appcompat-1.5.x
Hugh Daschbach 2 years ago committed by Ryan Harg
parent
commit
4827fbccc1
No known key found for this signature in database
GPG Key ID: 89106F3A84E6958C
  1. 4
      app/src/main/java/audio/funkwhale/ffa/FFA.kt
  2. 8
      app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt

4
app/src/main/java/audio/funkwhale/ffa/FFA.kt

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

8
app/src/main/java/audio/funkwhale/ffa/utils/Bus.kt

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

Loading…
Cancel
Save