package Ġcom . example . r app i inter view . infrastructure . manager . implementation Ċ Ċ import Ġcom . example . r app i inter view . infrastructure . manager . interfaces . Ret rofit Manager Ċ import Ġcom . google . gson . Gson Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġokhttp 3 . logging . Http Logging Interceptor . Level Ċ 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 Ċ Ċ class ĠRet rofit ManagerImpl ( ĊĠĠĠ Ġprivate Ġval Ġm Gson : ĠGson Ċ ) Ġ: ĠRet rofit Manager Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Ret rofit : ĠRet rofit ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Default Ok HttpClient : ĠOk HttpClient ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Ret rofit Manager " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ret rofit ( url : ĠString ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Ret rofit Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . level Ġ= ĠLevel . BODY ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Default Ok HttpClient Ġ= ĠhttpClient . build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Ret rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( m Gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( m Default Ok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Ret rofit !! ĊĠĠĠ Ġ} Ċ } Ċ