package Ġcom . l wt . q mq iu . utils Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ Ċ class ĠRx Bus Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsubject Ġ= ĠPublish Subject . create < Any >(). to Serialized () ĊĠĠĠ Ġprivate Ġval Ġdis po able : ĠDis posable ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Instance : ĠRx Bus ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠRx Bus ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Rx Bus :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Instance Ġ= ĠRx Bus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Instance ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åıĳéĢģ äºĭä»¶ ĊĠĠĠĠ Ġ* Ġ@ param Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpost ( obj : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubject . onNext ( obj ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġclass Type ĊĠĠĠĠ Ġ* Ġ@ param Ġ< T > ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠ Ġ</ T > Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġto Ob serv ale ( class Type : ĠClass < T >): ĠObservable < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubject . of Type ( class Type ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®¢ éĺħ ĊĠĠĠĠ Ġ* Ġ@ param Ġbean ĊĠĠĠĠ Ġ* Ġ@ param Ġconsumer ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/* public Ġvoid Ġsubscribe ( Class Ġbean , ĠConsumer Ġconsumer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis po able Ġ= Ġto Ob serv ale ( bean ). subscribe ( consumer ); ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åıĸæ¶Ī è®¢ éĺħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/* Ġpublic Ġvoid Ġun Sub cribe () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dis po able Ġ!= Ġnull Ġ&& Ġdis po able . is Disposed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis po able . dispose (); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}*/ Ċ Ċ }