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 = MutableSharedFlow() val events: Flow = sharedEventFlow // TODO remove this old stuff as soon as NotificationsFragment is Kotlin private val eventsSubject = PublishSubject.create() val eventsObservable: Observable = eventsSubject suspend fun dispatch(event: Event) { sharedEventFlow.emit(event) eventsSubject.onNext(event) } fun dispatchOld(event: Event) { eventsSubject.onNext(event) } }