package Ġcom . demo . inst ac opy . feed . data Ċ /* Ċ * ĠCreated Ġby Ġh rank 8 t Ġon Ġ 0 3 - 0 6 - 2 0 2 0 Ġ- Ġ 1 6 : 0 8 : 3 8 . Ċ */ ĊĊĊĊ Ċ import Ġcom . demo . inst ac opy . API _ KEY Ċ import Ġcom . demo . inst ac opy . Build Config Ċ import Ġcom . demo . inst ac opy . feed . models . Photos Ċ import Ġio . reactivex . Single Ċ import Ġokhttp 3 . Interceptor Ċ 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 Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query ĊĊ Ċ interface ĠNetwork Service Ġ{ ĊĊĠĠĠ Ġ@ GET ("/ photos /") ĊĠĠĠ Ġfun Ġget Photos ( ĊĠĠĠĠĠĠĠ Ġ@ Query (" page ") Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ Query (" per _ page ") ĠpageSize : ĠInt ĊĠĠĠ Ġ): ĠSingle < List < Photos >> ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġretrofit : ĠRet rofit ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ URL Ġ= Ġ" https :// api . unsplash . com /" ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠapiKey Interceptor Ġ= ĠInter ceptor Ġ{ Ġchain : ĠInter ceptor . Chain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġu ID Ġ= ĠAPI _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request (). newBuilder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Http Url Ġ= Ġrequest . url () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġoriginal Http Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" client _ id ", Ġu ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinal Request Ġ= Ġrequest . newBuilder (). url ( url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( final Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Service (): ĠNetwork Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient : ĠOk HttpClient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ġ= Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( apiKey Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( apiKey Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Network Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }