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
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()

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

@ -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 {

Loading…
Cancel
Save