package Ġru . a as mc . crypt oc urrencies . data . api Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Path Ċ import Ġretrofit 2 . http . Query Ċ import Ġru . a as mc . crypt oc urrencies . data . api . Api Constants . BASE _ ENDPOINT Ċ import Ġru . a as mc . crypt oc urrencies . data . api . Api Constants . AS SETS Ċ import Ġru . a as mc . crypt oc urrencies . data . api . Api Constants . HISTORY Ċ import Ġru . a as mc . crypt oc urrencies . data . api . intercept ors . Network Status Interceptor Ċ import Ġru . a as mc . crypt oc urrencies . data . api . model . Coin History Response Ċ import Ġru . a as mc . crypt oc urrencies . data . api . model . Coin ListResponse Ċ Ċ interface ĠCoin Cap Api Ġ{ ĊĊĠĠĠ Ġ@ GET ("$ BASE _ ENDPOINT $ AS SETS ") ĊĠĠĠ Ġsuspend Ġfun Ġget Coins (@ Query (" limit ") Ġlimit : ĠInt Ġ= Ġ 5 0 ): ĠCoin ListResponse ĊĊĠĠĠ Ġ@ GET ("$ BASE _ ENDPOINT $ AS SETS /{ id }/ $ HISTORY ") ĊĠĠĠ Ġsuspend Ġfun Ġget Coin History ( ĊĠĠĠĠĠĠĠ Ġ@ Path (" id ") Ġcoin Id : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Query (" interval ") Ġinterval : ĠString Ġ= Ġ" m 5 ", ĊĠĠĠĠĠĠĠ Ġ@ Query (" start ") Ġstart : ĠLong , ĊĠĠĠĠĠĠĠ Ġ@ Query (" end ") Ġend : ĠLong ĊĠĠĠ Ġ): ĠCoin History Response ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( context : ĠContext ): ĠCoin Cap Api Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ ENDPOINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( create Ok HttpClient ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Coin Cap Api :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Ok HttpClient ( context : ĠContext ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Network Status Interceptor ( ConnectionManager ( context ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( http Logging Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhttp Logging Interceptor : ĠHttp Logging Interceptor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠHttp Logging Interceptor Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Network ", Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }