package Ġcom . max im erous sy . f iz zh ub . api Ċ Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Http Url Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġokhttp 3 . logging . Http Logging Interceptor . Level . BODY Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠApi Module Ġ{ ĊĠ Ġ@ Singleton ĊĠ Ġ@ Provides ĊĠ Ġfun Ġgithub Endpoint ( file Manager : ĠFile Manager ): ĠGithub Endpoint Ġ{ ĊĠĠĠ Ġval Ġcache Size Ġ= Ġ 1 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 Ġ// Ġ 1 0 ĠMB ĊĠĠĠ Ġval Ġcache Ġ= ĠCache ( file Manager . getCache Directory (), Ġcache Size . to Long ()) ĊĠĠĠ Ġval ĠbaseUrl Ġ= Ġ" https :// api . github . com /" ĊĠĠĠ Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor (). setLevel ( BODY )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Http Url . parse ( baseUrl ) !! ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ. create ( Github Endpoint :: class . java ) ĊĠ Ġ} ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġgithub Api ( github Endpoint : ĠGithub Endpoint , Ġgithub Header Parser : ĠGithub Header Parser ): ĠGithub Api Ġ{ ĊĠĠĠ Ġreturn ĠGithub Api ( github Endpoint , Ġgithub Header Parser ) ĊĠ Ġ} Ċ } Ċ