package Ġde . hpi . android . course . domain Ċ Ċ import Ġde . hpi . android . core . domain .* Ċ import Ġde . hpi . android . course . data . Course Dto Ċ import Ġde . hpi . android . course . data . Course Repository Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ object ĠList Courses UseCase Ġ: ĠObservable UseCase < Unit , ĠList < Course >>() Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsubscribe Scheduler Ġ= ĠS chedulers . io () ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( params : ĠUnit ): ĠObservable < Result < List < Course >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCourse Repository . getAll (). flatMap Result Ġ{ courses Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . combine Latest ( courses . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . just ( it . success () Ġas ĠResult < Course Dto >). to Course Entity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ Ġarray Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray . map Ġ{ Ġit Ġas ĠResult < Course > Ġ}. merge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ