/** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠT ari ĠProject Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ċ Ġ* Ġwithout Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ċ Ġ* Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ 1 . ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ 2 . ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ċ Ġ* Ġcopyright Ġnotice , Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ċ Ġ* Ġdocumentation Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* Ġ 3 . ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder Ġnor Ġthe Ġnames Ġof Ċ Ġ* Ġits Ġcontributors Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ċ Ġ* Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND Ċ Ġ* ĠCONTRIBUTORS Ġ" AS ĠIS " ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , Ċ Ġ* ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED ĠWARRANTIES Ċ Ġ* ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE Ċ Ġ* ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠHOLDER ĠOR Ċ Ġ* ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , Ċ Ġ* ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT Ċ Ġ* ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; Ċ Ġ* ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) Ċ Ġ* ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN Ċ Ġ* ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE Ċ Ġ* ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS Ċ Ġ* ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ package Ġcom . t ari . android . wallet . event Ċ Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ Ċ /** Ċ Ġ* ĠEvent Ġbus Ġfor Ġthe Ġpub / sub Ġmodel . Ċ Ġ* Ċ Ġ* ĠSubscription Ġexample : Ċ Ġ* Ċ Ġ* ĠEvent Bus . subscribe < Event Class >( this ) Ġ{ Ċ Ġ* ĠĠĠĠĠ Ġ// Ġop . s Ċ Ġ* Ġ} Ċ Ġ*/ Ċ object ĠEvent Bus Ġ{ ĊĊĠĠĠ Ġval Ġdis pos ables Ġ= Ġmutable Map Of < Any , ĠComposite Disposable >() ĊĠĠĠ Ġval Ġpublish Subject Ġ= ĠPublish Subject . create < Any >() ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġsubscribe ( subscriber : ĠAny , Ġno inline Ġconsumer : Ġ( T ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= Ġpublish Subject . of Type ( T :: class . java ). subscribe ( consumer ) ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġdis pos ables [ subscriber ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠComposite Disposable (). apply Ġ{ Ġdis pos ables [ subscriber ] Ġ= Ġthis Ġ} ĊĠĠĠĠĠĠĠ Ġdis posable . add ( observer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunsubscribe ( subscriber : ĠAny ) Ġ= Ġdis pos ables . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġget ( subscriber )?. clear () ĊĠĠĠĠĠĠĠ Ġremove ( subscriber ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost ( event : ĠAny ) Ġ= Ġpublish Subject . onNext ( event ) Ċ }