package Ġcom . in aka . kill ert ask Ċ Ċ import Ġandroid . util . Log Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URL Ċ import Ġjava . net . URLConnection Ċ import Ġjava . util . concurrent . Count DownLatch Ċ Ċ private Ġclass ĠExample Blocks Ref actor Ġ{ ĊĠĠĠ Ġval Ġsignal Ġ= ĠCount DownLatch ( 1 ); ĊĊĠĠĠ Ġ// ĠonSuccess Ġfunction ĊĠĠĠ Ġval ĠonSuccess : Ġ( String ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġresult : ĠString Ġ-> ĊĠĠĠĠĠĠĠ ĠLog . w tf (" success Ġresult ", Ġresult ) ĊĠĠĠĠĠĠĠ Ġsignal . count Down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġon Failed Ġfunction ĊĠĠĠ Ġval Ġon Failed : Ġ( Exception ?) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġe : ĠException ? Ġ-> ĊĠĠĠĠĠĠĠ ĠLog . w tf (" error Ġresult ", Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġe ?. printStackTrace () ĊĠĠĠĠĠĠĠ Ġsignal . count Down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġtask Ġfunction ĊĠĠĠ Ġval Ġdo Work : Ġ() Ġ-> ĠString Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġconnection : ĠURL Connection ? Ġ= Ġnull ; ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= ĠURL (" https :// api . github . com / gist s ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Ġ= Ġurl . open Connection (); ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġhttp Conn Ġ= Ġconnection Ġas ĠHttp URLConnection ; ĊĠĠĠĠĠĠĠ Ġhttp Conn . connect Timeout Ġ= Ġ 3 0 0 0 ; ĊĠĠĠĠĠĠĠ Ġhttp Conn . read Timeout Ġ= Ġ 5 0 0 0 ; ĊĊĠĠĠĠĠĠĠ Ġ// Ġimplicit Ġreturn ĊĠĠĠĠĠĠĠ Ġhttp Conn . response Code . toString () Ġ+ Ġ" Ġ" Ġ+ Ġhttp Conn . response Message ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠK iller Task ( do Work , ĠonSuccess , Ġon Failed ). go () ĊĠĠĠĠĠĠĠ Ġsignal . await () ĊĠĠĠ Ġ} Ċ Ċ }