package Ġcom . exercise . earth qu akes . network . clients Ċ Ċ import Ġandroid . os . AsyncTask Ċ import Ġcom . exercise . earth qu akes . model . Earth qu akes Ċ import Ġcom . exercise . earth qu akes . network . Earth quake Request Params Ċ import Ġcom . exercise . earth qu akes . network . Earth quake Service . Companion . BASE _ URL Ċ import Ġcom . exercise . earth qu akes . network . Earth quake Service . Companion . ENDPOINT Ċ import Ġcom . exercise . earth qu akes . network . Network Constants Ċ import Ġcom . exercise . earth qu akes . ui . interfaces . On Earth quake Retrie ved Ċ import Ġcom . google . gson . Gson Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġn ativ lev y Ġon Ġ 2 / 1 1 / 1 8 . Ċ Ġ*/ Ċ class ĠURL Connection Client Ġ: ĠBase Client () Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Request ( eq : ĠEarth quake Request Params ): ĠPair < Int , ĠString ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder ( BASE _ URL ). append ( ENDPOINT ) ĊĠĠĠĠĠĠĠ Ġsb . append ("& north =" ). append ( eq . north ). append ("& south =" ). append ( eq . south ). append ("& east =" ). append ( eq . east ). append ("& west =" ). append ( eq . west ). append ("& username =" ). append ( eq . username ) ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( sb . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġurl Connection Ġ= Ġurl . open Connection () Ġas ĠHttp URLConnection ĊĊĠĠĠĠĠĠĠ Ġvar Ġis r : ĠBufferedReader ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Code Ġ= Ġurl Connection . response Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis r Ġ= ĠBufferedReader ( InputStream Reader ( url Connection . inputStream )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinput Line : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( input Line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . append ( input Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Line Ġ= Ġis r . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( response Code , Ġresponse . toString ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( error : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( 4 0 4 , Ġerror . message ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Connection . disconnect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis r ?. close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġquery Earth qu akes ( params : ĠEarth quake Request Params , Ġon Earth quake Received : ĠOn Earth quake Retrie ved ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAsync Task . THREAD _ POOL _ EXECUT OR . execute ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( response Code , Ġresponse Body ) Ġ= Ġexecute Request ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Code Ġ== ĠNetwork Constants . REQUEST _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Earth quake Received . on Retrie ved ( Gson (). fromJson ( response Body , ĠEarth qu akes :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Earth quake Received . onError () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrelease () Ġ{ ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ