package Ġcom . android . example . paging . paging with network . reddit . api Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . android . example . paging . paging with network . reddit . vo . Red dit Post Ċ import Ġokhttp 3 . Http Url Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Path Ċ import Ġretrofit 2 . http . Query Ċ Ċ /** Ċ Ġ* ĠAPI Ġcommunication Ġsetup Ċ Ġ*/ Ċ interface ĠRed dit Api Ġ{ ĊĠĠĠ Ġ@ GET (" taxonomy ") ĊĠĠĠ Ġfun Ġget Categories ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" format ") Ġformat : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" apiKey ") ĠapiKey : ĠString ): ĠCall < Categories Response > ĊĊĊĠĠĠ Ġ@ GET ("/ r /{ sub reddit }/ hot . json ") ĊĠĠĠ Ġfun Ġget Top ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Path (" sub reddit ") Ġsub reddit : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" limit ") Ġlimit : ĠInt ): ĠCall < Listing Response > ĊĊĠĠĠ Ġ// Ġfor Ġafter / before Ġparam , Ġeither Ġget Ġfrom ĠRed dit Data Response . after / before , ĊĠĠĠ Ġ// Ġor Ġpass ĠRed dit News Data Response . name Ġ( though Ġthis Ġis Ġtechnically Ġincorrect ) ĊĠĠĠ Ġ@ GET ("/ r /{ sub reddit }/ hot . json ") ĊĠĠĠ Ġfun Ġget Top After ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Path (" sub reddit ") Ġsub reddit : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" after ") Ġafter : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" limit ") Ġlimit : ĠInt ): ĠCall < Listing Response > ĊĊĠĠĠ Ġ@ GET ("/ r /{ sub reddit }/ hot . json ") ĊĠĠĠ Ġfun Ġget Top Before ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Path (" sub reddit ") Ġsub reddit : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" before ") Ġbefore : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" limit ") Ġlimit : ĠInt ): ĠCall < Listing Response > ĊĊĠĠĠ Ġclass ĠListing Response ( val Ġdata : ĠListing Data ) ĊĠĠĠ Ġclass ĠCategories Response ( val Ġcategories : ĠList < Categories Data >) ĊĊĠĠĠ Ġclass ĠListing Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchildren : ĠList < Red dit Children Response >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġafter : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbefore : ĠString ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠCategories Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġdata Ġclass ĠRed dit Children Response ( val Ġdata : ĠRed dit Post ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ URL Ġ= Ġ" http :// api . wal mart labs . com / v 1 /" ĊĠĠĠĠĠĠĠ Ġfun Ġcreate (): ĠRed dit Api Ġ= Ġcreate ( Http Url . parse ( BASE _ URL ) !! ) ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( http Url : ĠHttp Url ): ĠRed dit Api Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠHttp Logging Interceptor ( Http Logging Interceptor . Logger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" API ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . level Ġ= ĠHttp Logging Interceptor . Level . BASIC ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logger ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( http Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Red dit Api :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }