package Ġco . com . l af em me app . core . domain . use _ cases . system Ċ Ċ import Ġco . com . l af em me app . core . domain . entities . City Ċ import Ġco . com . l af em me app . core . domain . map pers . APIC I ty City Mapper Ċ import Ġco . com . l af em me app . core . domain . use _ cases . UseCase Ċ import Ġco . com . l af em me app . dat apro vider . network . entities . APIC ity Ċ import Ġco . com . l af em me app . dat apro vider . repo . interfaces . I Repository Factory Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observable On Subscribe Ċ import Ġio . reactivex . Observable Source Ċ import Ġio . reactivex . Scheduler Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġosc arg all on Ġon Ġ 7 / 1 0 / 1 7 . Ċ Ġ*/ Ċ class ĠGet Selectable C ities UseCase ( m Subscribe On Scheduler : ĠScheduler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Observer On Scheduler : ĠScheduler ) Ġ: ĊĠĠĠĠĠĠĠ ĠUse Case < List < City >, ĠVoid ? >( m Subscribe On Scheduler , Ġm Observer On Scheduler ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Repository Factory : ĠI Repository Factory ĊĊĠĠĠ Ġoverride Ġfun Ġbuild UseCase Observable ( params : ĠVoid ?): ĠObservable < List < City >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Repository Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. i Params Repository . cities ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap ({ Ġapi C ities Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Repository Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. i Params Repository . save C ities ( api C ities ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). map Ġ{ Ġapi C ities Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi C ities . filter Ġ{ Ġapi City Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi City . is Selectable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġapi C ities Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi C ities . map Ġ{ Ġapi City Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAP IC I ty City Mapper . instance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( api City ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }