package Ġcom . loop . ide as . apps . android blog 0 1 . manual _ di Ċ Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . data . local . Local DataSource Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . data . local . Local DataSource Impl Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . data . mapper . User Local Mapper Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . data . mapper . User Local Mapper Impl Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . data . repository . UserRepository Impl Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . domain . repository . UserRepository Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . domain . use _ case . GetUser UseCase Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . domain . use _ case . Get Users UseCase Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . presentation . mapper . User Presentation Mapper Ċ import Ġcom . loop . ide as . apps . android blog 0 1 . presentation . mapper . User Presentation Mapper Impl Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠCh ristopher ĠE li as Ġon Ġ 2 4 / 0 6 / 2 0 2 0 . Ċ Ġ* Ġch ristopher . el ias @ loop - ide as . com Ċ Ġ* ĠĊ Ġ* ĠLoop ĠIde as Ċ Ġ* ĠL ima , ĠPer u . Ċ Ġ*/ Ċ /** Ċ Ġ* ĠThis Ġcan Ġbe Ġreplaced Ġfor ĠD agger , ĠK oin Ġor ĠH ilt . ĠBut Ġfor Ġthe Ġsake Ġof Ġsimplicity Ġwe Ġare Ġusing Ġmanual ĠDI . Ċ Ġ*/ Ċ object ĠApp Injector Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġprovide Local DataSource () Ġ: ĠLocal DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocal DataSource Impl () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprovide Local Mapper () Ġ: ĠUser Local Mapper Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Local Mapper Impl () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprovide UserRepository () Ġ: ĠUser Repository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Repository Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ= Ġprovide Local DataSource (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper Ġ= Ġprovide Local Mapper () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprovide Presentation Mapper () Ġ: ĠUser Presentation Mapper Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Presentation Mapper Impl () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprovide GetUser UseCase () Ġ: ĠGetUser UseCase Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGetUser UseCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Ġ= Ġprovide UserRepository (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Dispatcher Ġ= ĠDispatch ers . IO ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprovide Get Users UseCase () Ġ: ĠGet Users UseCase Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGet Users UseCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Ġ= Ġ Ġprovide UserRepository (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Dispatcher Ġ= ĠDispatch ers . IO ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }