RequentBus: replace deprecated implementation.

Convert RequestBus from deprecated BroadcastChannel to a SharedFlow.
technical/upgrade-appcompat-1.5.x
Hugh Daschbach 2022-08-20 17:18:47 -07:00 zatwierdzone przez Ryan Harg
rodzic 1a038b2355
commit 4827fbccc1
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 89106F3A84E6958C
2 zmienionych plików z 4 dodań i 8 usunięć

Wyświetl plik

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

Wyświetl plik

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