package Ġcom . never e atal one . data . api Ċ Ċ import Ġcom . never e atal one . Build Config Ċ import Ġcom . never e atal one . common . Consts . Companion . API _ ENDPOINT Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ 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 Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Singleton ĊĊ Ċ @ Module Ċ class ĠApi Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide ApiService ( ret rofit : ĠRet rofit ): ĠApi Service Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit . create ( ApiService :: class . java ) ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Ok Http (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclient Builder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . tag (" Ok Http "). d ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Interceptor . setLevel ( Http Logging Interceptor . Level . BASIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Builder . add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. follow Redirect s ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Ret rofit ( client : ĠOk HttpClient ): ĠRet rofit Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( API _ ENDPOINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ċ }