package Ġcom . eg env all . s ke pp sk lock a . di Ċ Ċ import Ġcom . eg env all . s ke pp sk lock a . network . Firebase Interactor Ċ import Ġcom . eg env all . s ke pp sk lock a . network . Firebase Interactor Impl Ċ import Ġcom . eg env all . s ke pp sk lock a . network . Firebase Service Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Converter Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java . Rx Java Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġrx . schedul ers . Schedulers Ċ import Ġjavax . inject . Named Ċ import Ġjavax . inject . Singleton ĊĊ Ċ @ Module Ċ class ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named (" baseUrl ") ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide BaseUrl (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" https :// fc m . googleapis . com /" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named (" access Key ") ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide AccessKey (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" key = Your Key "; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Header Interceptor (@ Named (" access Key ") Ġaccess Key : ĠString ): ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInter ceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Request Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccess Request Ġ= Ġoriginal Request . newBuilder (). add Header (" Authorization ", Ġaccess Key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( access Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named (" Firebase ") ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ok HttpClient ( interceptor : ĠInter ceptor ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Log Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġinterceptor Log . setLevel ( Http Logging Interceptor . Level . BODY ) ĊĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder (). add Interceptor ( interceptor ). add Interceptor ( interceptor Log ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named (" Firebase ") ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Converter (): ĠConverter . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Converter Factory . create () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named (" Firebase ") ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit (@ Named (" Firebase ") Ġclient : ĠOk HttpClient , Ġ@ Named (" baseUrl ") ĠbaseUrl : ĠString , Ġ@ Named (" Firebase ") Ġconverter Factory : ĠConverter . Factory ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( converter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java Call Adapter Factory . create With Scheduler ( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Firebase Service (@ Named (" Firebase ") Ġretrofit : ĠRet rofit ): ĠFirebase Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Firebase Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Firebase Interactor ( service : ĠFirebase Service ): ĠFirebase Interactor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFirebase Interactor Impl ( service ) ĊĠĠĠ Ġ} Ċ }