package Ġcom . test mobile . github users list . api Ċ Ċ import Ġcom . test mobile . github users list . model . User Ċ import Ġretrofit 2 . http . Query Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* Ġ[ Fake Users Api ] Ġclass Ġextends Ġthe Ġ[ Users Api ] Ġclass Ġto Ċ Ġ* Ġcreate Ġa Ġfake Ġapi Ġin Ġorder Ġto Ġsimulate Ġthe Ġser ach Ġusers Ġservice Ċ Ġ* Ġ*/ Ċ class ĠFake Users Api : ĠUsers Api Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġusers Ġ= ĠUser (" 1 ", Ġ" nameof user ", Ġ" 2 ", Ġ" http :// avatar url . com ", Ġ" http :// url . com ") ĊĠĠĠ Ġprivate Ġval Ġusers List Ġ= Ġarray ListOf ( users ); ĊĠĠĠ Ġprivate Ġvar Ġfailure Msg : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Users ( ĊĠĠĠĠĠĠĠ Ġ@ Query (" q ") Ġquery : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Query (" page ") Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ Query (" per _ page ") ĠpageSize : ĠInt ĊĠĠĠ Ġ): ĠUser Response Ġ{ ĊĠĠĠĠĠĠĠ Ġfailure Msg ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠUser Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Count Ġ= Ġusers List . size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġusers List ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* Ġparams Ġ-> Ġuser : Ġ[ User ] Ġobject ĊĠĠĠ Ġ**/ ĊĠĠĠ Ġfun Ġadd User ( user : ĠUser ){ ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġuser Ġto Ġlist ĊĠĠĠĠĠĠĠ Ġusers List . add ( user ) ĊĠĠĠ Ġ} Ċ }