package Ġbar on . se ver in . business _ logic Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . util . Log Ċ import Ġbar on . se ver in . io . Sub reddit Repo Ċ import Ġio . reactivex . Observable Ċ Ċ internal Ġclass ĠDispatcher ( ĊĠĠĠĠĠĠĠ Ġevent Observable Wrapper : ĠEvent Observable , ĊĠĠĠĠĠĠĠ Ġaction Relay Wrapper : ĠAction Relay , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsub reddit Repo : ĠSub reddit Repo Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġevent Observable Ġ= Ġevent Observable Wrapper . get ĊĠĠĠ Ġprivate Ġval Ġaction Relay Ġ= Ġaction Relay Wrapper . get ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") Ġ// ĠThis Ġsubscription Ġshould Ġalways Ġbe Ġactive ĊĠĠĠ Ġinternal Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Observable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĠLog . d (" Se v Data : ĠEvent : Ġ", Ġit . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent . Sub reddit Selected Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sub reddit ( event . sub reddit Name ). subscribe Ġ{ Ġaction Relay . accept ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġhandle Ġfailure Ġcase ĊĠĠĠ Ġprivate Ġfun Ġget Sub reddit ( name : ĠCharSequence ): ĠObservable < Action > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġload : ĠAction Ġ= ĠAction . Loading Sub reddit ĊĠĠĠĠĠĠĠ Ġval Ġloaded Obs : ĠObservable < Action > Ġ= Ġsub reddit Repo . getSub reddit ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠAction . Sub reddit Loaded ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( load ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. concat With ( loaded Obs ) ĊĠĠĠ Ġ} Ċ } Ċ