Tusky-App-Android/app/src/main/java/com/keylesspalace/tusky/appstore/EventsHub.kt

31 lines
878 B
Kotlin

package com.keylesspalace.tusky.appstore
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.subjects.PublishSubject
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
interface Event
@Singleton
class EventHub @Inject constructor() {
private val sharedEventFlow: MutableSharedFlow<Event> = MutableSharedFlow()
val events: Flow<Event> = sharedEventFlow
// TODO remove this old stuff as soon as NotificationsFragment is Kotlin
private val eventsSubject = PublishSubject.create<Event>()
val eventsObservable: Observable<Event> = eventsSubject
suspend fun dispatch(event: Event) {
sharedEventFlow.emit(event)
eventsSubject.onNext(event)
}
fun dispatchOld(event: Event) {
eventsSubject.onNext(event)
}
}