Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class EventReceiver {
- private val TAG = EventReceiver.javaClass.simpleName
- private val eventRelay = PublishRelay.create<IEvent>()
- private lateinit var eventReceiverDisposable: Disposable
- private var debugDisposable: Disposable? = null
- private var debuggable = false
- set(value) {
- if (field == value) {
- return
- }
- if (value) {
- debugDisposable?.dispose()
- debugDisposable = eventRelay.subscribe {
- Log.d(TAG, it.javaClass.simpleName)
- }
- } else {
- debugDisposable?.dispose()
- }
- field = value
- }
- companion object {
- val instance = EventReceiver()
- }
- init {
- eventReceiverDisposable = eventRelay.subscribe {
- try {
- val method = this.javaClass.getMethod("onEvent", it.javaClass)
- method.invoke(this, it)
- } catch (e: Exception) {
- Log.e(TAG, "Reflection error", e)
- }
- }
- }
- fun post(event: IEvent) {
- eventRelay.accept(event)
- }
- fun onEvent(event: DramaWatchEvent) {
- println("aaa")
- println(event.javaClass.simpleName)
- println(event.description)
- }
- fun onEvent(event: DramaPageEvent) {
- println("bbb")
- println(event.javaClass.simpleName)
- println(event.description)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement