You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
511 B
22 lines
511 B
package com.keylesspalace.tusky.appstore
|
|
|
|
import io.reactivex.Observable
|
|
import io.reactivex.subjects.PublishSubject
|
|
|
|
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)
|
|
}
|
|
} |