package Ġru . gu ar 7 3 8 7 . kotlin sample . data Ċ Ċ import Ġru . gu ar 7 3 8 7 . kotlin sample . Earth quake Service Ċ import Ġjava . util . ArrayList Ċ import Ġjava . net . URL Ċ import Ġorg . apache . http . message . Basic NameValuePair Ċ import Ġorg . json . JSONObject Ċ import Ġru . gu ar 7 3 8 7 . kotlin sample . log Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . Unsupported EncodingException Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . net . Http URLConnection Ċ Ċ val ĠTAG Ġ= Ġ" download ing Ġearth qu akes " Ċ Ċ val ĠCONNECTION _ TIMEOUT Ġ= Ġ 1 5 0 0 0 ; Ċ val ĠREAD _ TIMEOUT Ġ= Ġ 1 0 0 0 0 ; Ċ Ċ public Ġfun ĠEarth quake Service . download Earth qu akes ( request : ĠString ) Ġ: ĊĠĠĠĠĠĠĠ ĠArrayList < Earth quake > Ġ{ ĊĠĠĠ Ġlog ( TAG , Ġ" Request . ĠParams Ġ- Ġ" Ġ+ Ġrequest ) ĊĠĠĠ Ġval ĠinputStream Ġ: ĠInputStream ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġurl . open Connection () Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠ Ġconnection . set Read Timeout ( READ _ TIMEOUT ) ĊĠĠĠĠĠĠĠ Ġconnection . set Connect Timeout ( CONNECTION _ TIMEOUT ) ĊĠĠĠĠĠĠĠ Ġconnection . setRequest Method (" POST ") ĊĠĠĠĠĠĠĠ Ġconnection . set Do Input ( true ) ĊĠĠĠĠĠĠĠ Ġconnection . set Do Output ( true ) ĊĊĠĠĠĠĠĠĠ Ġconnection . connect () ĊĊĠĠĠĠĠĠĠ ĠinputStream Ġ= Ġconnection . getInputStream () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( TAG , Ġ" IOException Ġduring Ġsending Ġrequest ") ĊĠĠĠĠĠĠĠ Ġreturn ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠBufferedReader ( InputStream Reader ( inputStream , Ġ" utf - 8 "), Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġvar Ġline Ġ= Ġreader . readLine () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( line ). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Ġ= Ġreader . readLine () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠinputStream . close () ĊĠĠĠĠĠĠĠ Ġlog ( TAG , Ġ" answer Ġ- Ġ" Ġ+ Ġsb ) ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject ( sb . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġparse Json ( json ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( TAG , Ġ" Buffer Ġerror , Ġconverting Ġresult Ġ" Ġ+ Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠArrayList () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġparse Json ( json : ĠJSONObject ): ĠArrayList < Earth quake > Ġ{ ĊĠĠĠ Ġlog ( TAG , Ġ" Result Ġjson Ġ- Ġ" Ġ+ Ġjson ) ĊĠĠĠ Ġval Ġresult Ġ= ĠArrayList < Earth quake >() ĊĠĠĠ Ġval Ġfeatures Ġ= Ġjson . get JSONArray (" features ") ĊĠĠĠ Ġfor Ġ( index Ġin Ġ 0 .. features . length () Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprops Ġ= Ġ( features [ index ] Ġas ĠJSONObject ). getJSONObject (" properties ") ĊĠĠĠĠĠĠĠ Ġresult . add ( Earth quake ( props . getLong (" time "), Ġprops . getInt (" mag "), Ġprops . getString (" place "))) ĊĠĠĠ Ġ} ĊĠĠĠ Ġlog ( TAG , Ġfeatures . toString ()) ĊĠĠĠ Ġreturn Ġresult Ċ } ĊĊĊĊ