package Ġcom . s rg . c iti box . common . di . d agger _ application Ċ Ċ import Ġcom . s rg . c iti box . common . data . network . ret rofit . Client Api Ċ import Ġcom . s rg . c iti box . post _ detail . data . datasource . Cloud Post Detail DataSource Ċ import Ġcom . s rg . c iti box . post _ detail . data . repository . Post Detail Data Repository Ċ import Ġcom . s rg . c iti box . post _ detail . domain . repository . Post Detail Repository Ċ import Ġcom . s rg . c iti box . post _ list . data . datasource . Cloud Post List DataSource Ċ import Ġcom . s rg . c iti box . post _ list . data . repository . Post List Data Repository Ċ import Ġcom . s rg . c iti box . post _ list . domain . repository . Post List Repository Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSeb ast i Ã¡n ĠRod r ÃŃ gue z Ġon Ġ 1 3 , January , 2 0 2 0 Ċ Ġ*/ Ċ Ċ @ Module Ċ class ĠApplication Module Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTIME OUT _ IN _ SECONDS Ġ= Ġ 6 0 L ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Api URL Ret rofit (): ĠRet rofit Ġ= ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder (). baseUrl (" https :// json placeholder . typ icode . com /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( provide Ok HttpClient ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun Ġprovide Ok HttpClient (): ĠOk HttpClient Ġ= ĊĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). connect Timeout ( TIMEOUT _ IN _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( TIMEOUT _ IN _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( TIMEOUT _ IN _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Network Api ( ret rofit : ĠRet rofit ): ĠClient Api Ġ= Ġretrofit . create ( Client Api :: class . java ) ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Cloud Post List DataSource ( api : ĠClient Api ): ĠCloud Post List DataSource Ġ= ĊĠĠĠĠĠĠĠ ĠCloud Post List DataSource ( api ) ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Post List Data Repository ( ĊĠĠĠĠĠĠĠ Ġapi : ĠClient Api ĊĠĠĠ Ġ): ĠPost List Repository Ġ= ĊĠĠĠĠĠĠĠ ĠPost List Data Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovide Cloud Post List DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Cloud Post Detail DataSource ( api : ĠClient Api ): ĠCloud Post Detail DataSource Ġ= ĊĠĠĠĠĠĠĠ ĠCloud Post Detail DataSource ( api ) ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Post Detail Data Repository ( ĊĠĠĠĠĠĠĠ Ġapi : ĠClient Api ĊĠĠĠ Ġ): ĠPost Detail Repository Ġ= ĊĠĠĠĠĠĠĠ ĠPost Detail Data Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovide Cloud Post Detail DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ }