Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. class EventReceiver {
  2.  
  3. private val TAG = EventReceiver.javaClass.simpleName
  4.  
  5. private val eventRelay = PublishRelay.create<IEvent>()
  6. private lateinit var eventReceiverDisposable: Disposable
  7.  
  8. private var debugDisposable: Disposable? = null
  9. private var debuggable = false
  10. set(value) {
  11. if (field == value) {
  12. return
  13. }
  14.  
  15. if (value) {
  16. debugDisposable?.dispose()
  17. debugDisposable = eventRelay.subscribe {
  18. Log.d(TAG, it.javaClass.simpleName)
  19. }
  20. } else {
  21. debugDisposable?.dispose()
  22. }
  23.  
  24. field = value
  25. }
  26.  
  27. companion object {
  28. val instance = EventReceiver()
  29. }
  30.  
  31. init {
  32. eventReceiverDisposable = eventRelay.subscribe {
  33. try {
  34. val method = this.javaClass.getMethod("onEvent", it.javaClass)
  35. method.invoke(this, it)
  36. } catch (e: Exception) {
  37. Log.e(TAG, "Reflection error", e)
  38. }
  39. }
  40. }
  41.  
  42. fun post(event: IEvent) {
  43. eventRelay.accept(event)
  44. }
  45.  
  46. fun onEvent(event: DramaWatchEvent) {
  47. println("aaa")
  48. println(event.javaClass.simpleName)
  49. println(event.description)
  50. }
  51.  
  52. fun onEvent(event: DramaPageEvent) {
  53. println("bbb")
  54. println(event.javaClass.simpleName)
  55. println(event.description)
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement