package Ġcom . base . core . ioc . modules Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . base . core . constants . App Constants Ċ import Ġcom . base . core . constants . App Constants . MAX _ MEMORY _ CACHE Ċ import Ġcom . base . core . constants . App Constants . NETWORK _ TIMEOUT Ċ import Ġcom . base . core . helpers . Local Pref Manager Ċ import Ġcom . base . core . ioc . qual ifiers . ApplicationContext Ċ import Ġcom . base . core . networking . Scheduler Ċ import Ġcom . de mi ro ren . core . networking . App Scheduler Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . jak ew h art on . ret rofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 .* Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġscheduler (): ĠScheduler Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠApp Scheduler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Ret rofit ( ĊĠĠĠĠĠĠĠ Ġclient : ĠOk HttpClient , ĊĠĠĠĠĠĠĠ Ġgson Converter Factory : ĠGson Converter Factory , ĊĠĠĠĠĠĠĠ Ġrx Java 2 Call Adapter Factory : ĠRx Java 2 Call Adapter Factory ĊĠĠĠ Ġ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder (). baseUrl ( App Constants . API _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( gson Converter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( rx Java 2 Call Adapter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġlocal Pref Manager : ĠLocal Pref Manager ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Interceptor (): ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInter ceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request (). newBuilder () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chain . request (). url (). uri (). toString (). contains (" api / S oc cer / Get Match Detail ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredentials Ġ= ĠCredentials . basic (" admin !", Ġ" password ! admin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add Header (" Authorization ", Ġcredentials ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chain . request (). url (). toString (). contains (" datas ources / authors / ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Ġ= Ġchain . proceed ( request . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġraw Json Ġ= Ġresponse . body () !!. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Json Ġ= Ġraw Json . replace ("\" author _ articles \": Ġ{}", Ġ"\" author _ articles \": Ġ[] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( ResponseBody . create ( response . body () !!. contentType (), Ġraw Json )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( request . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Ok HttpClient ( ĊĠĠĠĠĠĠĠ Ġinterceptor : ĠInter ceptor , ĊĠĠĠĠĠĠĠ Ġcache : ĠCache ĊĠĠĠ Ġ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġlog Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( log Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( NETWORK _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( NETWORK _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( NETWORK _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Ok http Cache (@ ApplicationContext Ġcontext : ĠContext ): ĠCache Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCache ( context . cacheDir , ĠMAX _ MEMORY _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Gson (): ĠGson Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder (). set Len ient (). create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Gson Converter Factory ( gson : ĠGson ): ĠGson Converter Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Converter Factory . create ( gson ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides Rx Java Call Adapter Factory (): ĠRx Java 2 Call Adapter Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRx Java 2 Call Adapter Factory . create () ĊĠĠĠ Ġ} Ċ } Ċ