/* Ċ Ġ* ĠWritten Ġand ĠDevelop ed Ġby ĠIn u wa ĠI br ah im Ġ- Ġhttps :// link tr . ee / I br aj ix Ċ */ Ċ Ċ package Ġcom . ibr aj ix . new sf ly . di Ċ Ċ import Ġandroidx . databinding . library . Build Config Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . ibr aj ix . new sf ly . data . Api DataSource Ċ import Ġcom . ibr aj ix . new sf ly . network . ApiService Ċ import Ġcom . ibr aj ix . new sf ly . network . Http Interceptor Ċ import Ġcom . ibr aj ix . new sf ly . utils . Urls Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Protocol Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ class ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide BaseUrl () Ġ= ĠUrl s . BASE _ URL ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides Gson (): ĠGson Ġ= ĠGson Builder (). set Len ient (). create () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( gson : ĠGson ) Ġ: ĠRet rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Urls . BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. client ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). also Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . setLevel ( Http Logging Interceptor . Level . BODY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . add Interceptor ( logging ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . add Interceptor ( Http Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . connect Timeout ( 1 2 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . read Timeout ( 1 2 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . protocols ( Collections . singletonList ( Protocol . HTTP _ 1 _ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide ApiService ( ret rofit : ĠRet rofit ) Ġ: ĠApi Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( ApiService :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide ApiClient ( api Service : ĠApi Service ) Ġ: ĠApi DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠApi DataSource ( api Service ) ĊĠĠĠ Ġ} Ċ Ċ }