package Ġcom . he ed . just quotes . data . remote Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . he ed . just quotes . data . remote . quotes apis . For ism atic Service Ċ import Ġcom . he ed . just quotes . data . remote . quotes apis . Random Fam ous Quotes Service Ċ import Ġcom . he ed . just quotes . data . remote . quotes apis . They S aid So Service Ċ import Ġcom . he ed . just quotes . data . remote . quotes apis . Wiki Quote Service Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ /** Ċ Ġ* Ġ@ author ĠHow ard . Ċ Ġ*/ ĊĊ Ċ open Ġclass ĠApi Service Generator Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTHE Y _ SA ID _ SO _ BASE _ URL Ġ= Ġ" http :// quotes . rest " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠR AN DOM _ FA MO US _ QUOT ES _ BASE _ URL Ġ= Ġ" https :// and r ux net - random - fam ous - quotes . p . m ash ape . com " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFOR IS MAT IC _ BASE _ URL Ġ= Ġ" http :// api . for ism atic . com / api /" ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠW IK I _ QUOTE _ BASE _ URL Ġ= Ġ" https :// en . wiki quote . org / w / api . php " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGet ĠRet rofit ĠClient ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠRet rofit ĠClient ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Ret ro Client ( BASE _ URL : ĠString , ĠhttpClient : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( len ient Gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlen ient Gson : ĠGson ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Interceptor : ĠHttp Logging Interceptor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinterceptor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Ok HttpClient : ĠOk HttpClient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( default Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAPI ĠServices ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġthey S aid So ApiService : ĠThey S aid So Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Ret ro Client ( THE Y _ SA ID _ SO _ BASE _ URL , Ġdefault Ok HttpClient ). create ( They S aid So Service :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrandom Fam ous Quotes Service : ĠRandom Fam ous Quotes Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Ret ro Client ( RANDOM _ FA MO US _ QUOT ES _ BASE _ URL , Ġdefault Ok HttpClient ). create ( Random Fam ous Quotes Service :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRequest Ġcustomization : Ġadd Ġrequest Ġheaders ĊĠĠĠĠĠĠĠ Ġval Ġfor ism atic Service : ĠFor ism atic Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient . add Interceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Http Url Ġ= Ġoriginal . url () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġoriginal Http Url . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" method ", Ġ" get Quote ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" lang ", Ġ" en ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" format ", Ġ" json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= Ġoriginal . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġrequest Builder . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add Interceptor ( default Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Ret ro Client ( FOR IS MAT IC _ BASE _ URL , ĠhttpClient . build ()). create ( For ism atic Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwiki Quote Service : ĠWiki Quote Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Ret ro Client ( WI KI _ QUOTE _ BASE _ URL , Ġdefault Ok HttpClient ). create ( Wiki Quote Service :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ