package Ġcom . yy x nb . http Ċ Ċ import Ġcom . yy x nb . common . AppConfig Ċ import Ġcom . yy x nb . http . interceptor . Cache Interceptor Ċ import Ġcom . yy x nb . http . interceptor . Header Interceptor Ċ import Ġcom . yy x nb . http . interceptor . Logging Interceptor Ċ import Ġcom . yy x nb . http . utils . Gson Utils . gson Ċ import Ġcom . yy x nb . http . utils . SSL Utils Ċ import Ġcom . yy x nb . http . utils . SSL Utils . getS sl Socket Factory Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Call Adapter Ċ import Ġretrofit 2 . Converter Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ abstract Ġclass ĠAbstract Http Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠbaseUrl ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun ĠbaseUrl (): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHeaders ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġheader (): ĠHashMap < String , ĠAny > Ġ= Ġhash Map Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOk Http çļĦ æĭ ¦ æĪª åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġintercept ors (): ĠIterable < Interceptor > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCall Adapter è½¬æį¢ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcall Adapter Factories (): ĠIterable < Call Adapter . Factory > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverter è½¬æį¢ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġconverter s Factories (): ĠIterable < Converter . Factory > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHttp s è¯ģ ä¹¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcertificates (): ĠArray < InputStream >? Ġ= ĠarrayOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHttp s å¯Ĩ éĴ¥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġkey Store (): ĠInputStream ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHttp s å¯Ĩçłģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġkey Store Password (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¼ĵåŃĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġsave Cache (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¼ĢåĲ¯ æīĵåį° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġopen Log (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¯» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġread Timeout (): ĠLong Ġ= Ġ 1 0 L ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĨĻ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġwrite Timeout (): ĠLong Ġ= Ġ 1 0 L ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¯·æ±Ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġconnect Timeout (): ĠLong Ġ= Ġ 1 0 L ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRet rofit ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġretrofit (): ĠRet rofit Ġ= Ġdefault Ret rofit () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOk HttpClient ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġok HttpClient (): ĠOk HttpClient Ġ= Ġdefault Ok HttpClient () ĊĊĠĠĠ Ġprivate Ġfun Ġdefault Ret rofit (): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( it Ġin Ġcall Adapter Factories ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Call Adapter Factory ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( it Ġin Ġconverter s Factories ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Converter Factory ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . baseUrl ( baseUrl ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdefault Ok HttpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( it Ġin Ġintercept ors ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Interceptor ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( open Log ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog Interceptor Ġ= ĠHttp Logging Interceptor ( Logging Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Interceptor ( log Interceptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( save Cache ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexternal Cache Dir Ġ= ĠApp Config . getInstance (). context . external Cache Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġexternal Cache Dir ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . cache ( Cache ( File ( external Cache Dir . path Ġ+ Ġ"/ Http Cache Data "), Ġ 2 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Interceptor ( Cache Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġssl Params Ġ= Ġget Ssl Socket Factory ( key Store (), Ġkey Store Password (), Ġ* certificates () !! ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ") ĊĠĠĠĠĠĠĠ Ġbuilder . add Interceptor ( Header Interceptor ( header ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( read Timeout (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( write Timeout (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( connect Timeout (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry On Connection Failure ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ssl Socket Factory ( ssl Params . s SL Socket Factory , Ġssl Params . trust Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hostname Verifier ( SSL Utils . Un Safe Hostname Verifier ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġcreate ( cl z : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit (). create ( cl z ) ĊĠĠĠ Ġ} Ċ Ċ }