package Ġapp . fr an ken stein . atm locator . di Ċ Ċ import Ġapp . fr an ken stein . atm locator . Build Config Ċ import Ġapp . fr an ken stein . atm locator . data . Poi Api Ċ import Ġapp . fr an ken stein . atm locator . data . Repository Ċ import Ġapp . fr an ken stein . atm locator . data . Repository Impl Ċ import Ġapp . fr an ken stein . atm locator . domain . Poi UseCase Ċ import Ġapp . fr an ken stein . atm locator . domain . Poi UseCase Impl Ċ import Ġapp . fr an ken stein . atm locator . utils . Coroutine Dispatch ers Ċ import Ġapp . fr an ken stein . atm locator . utils . Default Dispatch ers Ċ import Ġcom . squareup . mos hi . FromJson Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . ToJson Ċ import Ġdagger . Bind s Ċ 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 . mos hi . M oshi Converter Factory Ċ import Ġjava . math . BigDecimal Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module ( includes Ġ= Ġ[ App Singleton Bind Module :: class ]) Ċ @ Install In ( Singleton Component :: class ) Ċ class ĠApp Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Default Dispatch ers (): ĠCor outine Dispatch ers Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Dispatch ers ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Api ( ret rofit : ĠRet rofit ): ĠPo i Api Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Poi Api :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Ret rofit ( ĊĠĠĠĠĠĠĠ Ġm oshi Converter Factory : ĠM oshi Converter Factory ĊĠĠĠ Ġ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Build Config . API _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( mos hi Converter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide M oshi Converter Factory ( mos hi : ĠM oshi ): ĠM oshi Converter Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠM oshi Converter Factory . create ( mos hi ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide M oshi (): ĠM oshi Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠM oshi . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( BigDecimal Adapter ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBigDecimal Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ FromJson ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Json ( string : ĠString ) Ġ= ĠBigDecimal ( string ) ĊĊĠĠĠĠĠĠĠ Ġ@ ToJson ĊĠĠĠĠĠĠĠ Ġfun ĠtoJson ( value : ĠBigDecimal ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ abstract Ġclass ĠApp Singleton Bind Module Ġ{ ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġabstract Ġfun Ġprovide Repository ( ĊĠĠĠĠĠĠĠ Ġrepository : ĠRepository Impl ĊĠĠĠ Ġ) Ġ: ĠRepository ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġabstract Ġfun Ġprovide Poi UseCase ( ĊĠĠĠĠĠĠĠ Ġuse Case : ĠPo i UseCase Impl ĊĠĠĠ Ġ) Ġ: ĠPo i UseCase Ċ Ċ }