2018-05-27 10:22:12 +02:00
|
|
|
package com.keylesspalace.tusky.appstore
|
|
|
|
|
2021-05-16 19:53:27 +02:00
|
|
|
import io.reactivex.rxjava3.core.Observable
|
|
|
|
import io.reactivex.rxjava3.subjects.PublishSubject
|
2018-05-27 10:22:12 +02:00
|
|
|
|
|
|
|
interface Event
|
|
|
|
interface Dispatchable : Event
|
|
|
|
|
|
|
|
interface EventHub {
|
|
|
|
val events: Observable<Event>
|
|
|
|
fun dispatch(event: Dispatchable)
|
|
|
|
}
|
|
|
|
|
|
|
|
object EventHubImpl : EventHub {
|
|
|
|
|
|
|
|
private val eventsSubject = PublishSubject.create<Event>()
|
|
|
|
override val events: Observable<Event> = eventsSubject
|
|
|
|
|
|
|
|
override fun dispatch(event: Dispatchable) {
|
|
|
|
eventsSubject.onNext(event)
|
|
|
|
}
|
2021-06-28 21:13:24 +02:00
|
|
|
}
|