package Ġcn . nic ol ite . hut helper . event Ċ Ċ import Ġcn . nic ol ite . hut helper . utils . Log Utils Ċ import Ġcom . trello . rx lifecycle 2 . Lifecycle Provider Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġn icol ite Ġon Ġ 2 0 1 8 / 8 / 1 2 . Ċ Ġ* Ġemail Ġn icol ite @ nic ol ite . cn Ċ Ġ*/ Ċ object ĠRx Bus Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbus Ġ= ĠPublish Subject . create < Any >(). to Serialized () ĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Rx Bus " ĊĠĠĠ Ġprivate Ġvar Ġdis posable : ĠDis posable ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġpost ( any : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbus . onNext ( any ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Observer s (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbus . has Observer s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġto Observer ( clazz : ĠClass < T >): ĠObservable < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbus . of Type ( clazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Observer (): ĠObservable < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġsubscribe ( clazz : ĠClass < T >, Ġon Next : Ġ( t : ĠT ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError : Ġ( t : ĠThrowable ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" subscribe Ġ-> Ġ${ it . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġto Observer ( clazz ). subscribe ( onNext , ĠonError ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġsubscribe ( clazz : ĠClass < T >, Ġobserver : ĠObserver < in ĠT >) Ġ{ ĊĠĠĠĠĠĠĠ Ġto Observer ( clazz ). subscribe ( observer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T , ĠE > Ġsubscribe ( clazz : ĠClass < T >, Ġlifecycle Provider : ĠLifecycle Provider < E >, Ġon Next : Ġ( t : ĠT ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError : Ġ( t : ĠThrowable ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" subscribe Ġ-> Ġ${ it . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġto Observer ( clazz ). compose ( lifecycle Provider . bind To Lifecycle ()). subscribe ( onNext , ĠonError ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunsubscribe () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }