package Ġcom . app ham . mock in izer . demo Ċ Ċ import Ġcom . app ham . mock in izer . Build Config Ċ import Ġcom . app ham . mock in izer . mock in ize Ċ 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 ĊĊ Ċ private Ġconst Ġval ĠBASE _ URL Ġ= ĠBuild Config . BASE _ URL ; Ċ Ċ interface ĠApi Service Ġ{ ĊĊĠĠĠ Ġval Ġdemo Api : ĠDemo Api Ċ Ċ } Ċ Ċ class ĠReal Api Ġ: ĠApi Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġapi Ġinterface Ġfor Ġposts Ġapi ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġdemo Api : ĠDemo Api Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġretrofit . create ( Demo Api :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHttp Ġclient Ġwith Ġlogging Ġenabled ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġok HttpClient Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġlogging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. mock in ize ( mocks ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRet rofit Ġinstance Ġwith ĠRx java Ġadapter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġretrofit Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ