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