package Ġxyz . team gravity . al if tech . injection Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . room . Room Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġxyz . team gravity . al if tech . data . local . dao . Event Dao Ċ import Ġxyz . team gravity . al if tech . data . local . database . Event Database Ċ import Ġxyz . team gravity . al if tech . data . local . database . Event Database Const Ċ import Ġxyz . team gravity . al if tech . data . remote . api . Event Api Ċ import Ġxyz . team gravity . al if tech . data . repository . Event Repository Impl Ċ import Ġxyz . team gravity . al if tech . domain . repository . Event Repository Ċ import Ġxyz . team gravity . al if tech . domain . use _ case . Get Events UseCase Ċ import Ġxyz . team gravity . al if tech . presentation . event _ list . Event ListAdapter Ċ import Ġxyz . team gravity . al if tech . presentation . event _ list . Event List Diff Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ object ĠApplication Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Event Api (): ĠEvent Api Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Event Api . BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ. create ( Event Api :: class . java ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Event Repository ( api : ĠEvent Api , Ġdao : ĠEvent Dao ): ĠEvent Repository Ġ= ĠEvent Repository Impl ( api , Ġdao ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Get Events UseCase ( repository : ĠEvent Repository ) Ġ= ĠGet Events UseCase ( repository ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Event Database ( app : ĠApplication ): ĠEvent Database Ġ= ĊĠĠĠĠĠĠĠ ĠRoom . database Builder ( app , ĠEvent Database :: class . java , ĠEvent Database Const . NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Event Dao ( database : ĠEvent Database ): ĠEvent Dao Ġ= Ġdatabase . event Dao () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Event List Diff (): ĠEvent List Diff Ġ= ĠEvent List Diff () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Event ListAdapter ( diff : ĠEvent List Diff ): ĠEvent ListAdapter Ġ= ĠEvent ListAdapter ( diff ) Ċ }