/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠG Ã¶r k em ĠKar ado ÄŁ an Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . g ork em . popular movie . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġcom . g ork em . common . data . repository . F avour ite Program Repository Ċ import Ġcom . g ork em . core . util . App Coroutine Dispatch ers Ċ import Ġcom . g ork em . popular movie . data . api . Movie Service Ċ import Ġcom . g ork em . popular movie . data . local . Pop ular Movie Feature Database Ċ import Ġcom . g ork em . popular movie . data . local . dao . Movie Genre Dao Ċ import Ġcom . g ork em . popular movie . data . repository . Movie Repository Ċ import Ġcom . g ork em . popular movie . data . repository . Movie Repository Impl Ċ import Ġcom . g ork em . popular movie . domain . inter actor . Pop ular Movies UseCase Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . android . components . ViewModel Component Ċ import Ġdagger . h ilt . android . qual ifiers . ApplicationContext Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġretrofit 2 . Ret rofit Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ class ĠPop ular Movie Singleton Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Movie Service ( ret rofit : ĠRet rofit ): ĠMovie Service Ġ= ĊĠĠĠĠĠĠĠ Ġretrofit . create ( Movie Service :: class . java ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Pop ular Movie Feature Database (@ ApplicationContext Ġapp Context : ĠContext ): ĠPop ular Movie Feature Database Ġ= ĊĠĠĠĠĠĠĠ ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Context , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPop ular Movie Feature Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pop ular Movie Feature " ĊĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Movie Genre Dao ( app Database : ĠPop ular Movie Feature Database ): ĠMovie Genre Dao Ġ= ĊĠĠĠĠĠĠĠ Ġapp Database . movie Genre Dao () Ċ } Ċ Ċ @ Module Ċ @ Install In ( ViewModel Component :: class ) Ċ class ĠPop ular Movie View Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Pop ular Movie UseCase ( ĊĠĠĠĠĠĠĠ Ġapp Coroutine Dispatch ers : ĠApp Coroutine Dispatch ers , ĊĠĠĠĠĠĠĠ Ġapi : ĠMovie Repository , ĊĠĠĠĠĠĠĠ Ġfavour ite Program Repository : ĠF avour ite Program Repository , ĊĠĠĠ Ġ): ĠPop ular Movies UseCase Ġ= ĊĠĠĠĠĠĠĠ ĠPop ular Movies UseCase ( app Coroutine Dispatch ers , Ġapi , Ġfavour ite Program Repository ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Movie Repository ( ĊĠĠĠĠĠĠĠ Ġapp Coroutine Dispatch ers : ĠApp Coroutine Dispatch ers , ĊĠĠĠĠĠĠĠ Ġapi : ĠMovie Service , ĊĠĠĠĠĠĠĠ Ġmovie Genre Dao : ĠMovie Genre Dao , ĊĠĠĠ Ġ): ĠMovie Repository Ġ= ĊĠĠĠĠĠĠĠ ĠMovie Repository Impl ( app Coroutine Dispatch ers , Ġapi , Ġmovie Genre Dao ) Ċ } Ċ