package Ġapp . future d . ark ite kt . rx use cases . use cases Ċ Ċ import Ġio . reactivex . Comp letable Ċ Ċ /** Ċ Ġ* ĠBase Ġuse Ġcase Ġwhich Ġwraps Ġ[ Comp letable ]. ĠInstance Ġof Ġthis Ċ Ġ* Ġuse Ġcase Ġcan Ġbe Ġsimply Ġexecuted Ġin Ġc oo peration Ġwith Ċ Ġ* Ġ[ app . future d . ark ite kt . rx use cases . dis pos ables . Comp letable Dis pos ables Owner ] Ġinterface . Ċ Ġ* Ċ Ġ* ĠWr apped Ġstream Ġis Ġsubscribed Ġon Ġ[ io . reactivex . schedul ers . Schedulers . io ] Ġand Ċ Ġ* Ġobserved Ġon Ġ[ io . reactivex . android . schedul ers . Android Schedulers . main Thread ] Ċ Ġ* Ġby Ġdefault . ĠYou Ġmay Ġoverride Ġthese Ġthrough Ġ[ work Scheduler ] Ġand Ċ Ġ* Ġ[ result Scheduler ] Ġrespectively . Ċ Ġ*/ Ċ abstract Ġclass ĠComp letable UseCase < ARGS > Ġ: ĠBase UseCase () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrep ares Ġwhole Ġwrapped Ġ[ Comp letable ] ĠRx Ġstream . ĠThis Ġmethod Ġdoes Ġnot ĊĠĠĠĠ Ġ* Ġsubscribe Ġto Ġthe Ġstream . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġprepare ( args : ĠARGS ): ĠComp letable ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġinternal Ġ[ Comp letable ] ĠRx Ġstream , Ġapplies Ġrequested Ġwork ĊĠĠĠĠ Ġ* Ġ& Ġresult Ġs chedulers Ġand Ġexposes Ġthis Ġstream Ġas Ġa Ġ[ Comp letable ]. ĠThis Ġmethod ĊĠĠĠĠ Ġ* Ġis Ġhandy Ġwhen Ġyou Ġwant Ġto Ġcombine Ġstreams Ġof Ġmultiple Ġuse Ġcases . ĊĠĠĠĠ Ġ* ĠFor Ġexample : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġuse case _ A . create ( Unit ). and Then ( use case _ B . stream ( Unit )) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate ( args : ĠARGS ): ĠComp letable Ġ= Ġprepare ( args ). apply Schedulers () ĊĊĠĠĠ Ġprivate Ġfun ĠComp letable . apply Schedulers (): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcompose Ġ{ Ġresult Observable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Observable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( work Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( result Scheduler ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ