/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠMo is Ã©s ĠBor ges Ġdos ĠAn jos Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġnet . mo ise sb or ges . aud iop layer Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġnet . mo ise sb or ges . aud iop layer . Audio Player Service . Launcher Ċ import Ġnet . mo ise sb or ges . aud iop layer . Audio Player Service . Event Ċ import Ġnet . mo ise sb or ges . aud iop layer . Audio Player Service . Audio Player Service Binder Ċ import Ġnet . mo ise sb or ges . model . Station Ċ Ċ class ĠAudio Player ( ĊĠĠĠ Ġprivate Ġval Ġaudio Player Service Binder : ĠAudio Player Service Binder , ĊĠĠĠ Ġprivate Ġval Ġaudio Service Launcher : ĠLaunch er Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġstate : ĠAudio Player State Ġ= ĠAudio Player State ( is Playing Ġ= Ġfalse ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Player Service Binder . playback State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġplayback State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . copy ( is Playing Ġ= Ġplayback State . is Playing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( station : ĠStation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Service Launcher . launch ( Event . Load Station ( station )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay () Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Service Launcher . launch ( Event . Play ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Service Launcher . launch ( Event . Stop ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Playing () Ġ= Ġstate . is Playing ĊĊĠĠĠ Ġfun Ġplayback State (): ĠObservable < Playback State > Ġ= Ġaudio Player Service Binder . playback State () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlay back State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstation Ġ= Ġit . station Ġ?: ĠStation . EMPTY _ ST ATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Playing Ġ= Ġit . is Playing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ private Ġdata Ġclass ĠAudio Player State ( val Ġis Playing : ĠBoolean )