package Ġcom . light b reeze . android . logic . network Ċ Ċ import Ġcom . light b reeze . android . Light B reeze Application Ċ import Ġretrofit 2 .* Ċ import Ġjava . lang . RuntimeException Ċ import Ġkotlin . coroutines .* Ċ Ċ object ĠLight B reeze Network Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcity Service = Service Creator . create < City Service >() ĊĊĠĠĠ Ġsuspend Ġfun Ġsearch C ities ( query : String )= Ġcity Service ĊĠĠĠĠĠĠĠ Ġ. search C ities (" https :// geo api . q weather . com / v 2 / city / lookup ?", query , Light B reeze Application . KEY ). await () ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ< T > ĠCall < T >. await (): T { ĊĠĠĠĠĠĠĠ Ġreturn Ġsuspend Coroutine { continu ation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenqueue ( object Ġ: ĠCallback < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < T >, Ġresponse : ĠResponse < T >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody = response . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( body Ġ!= null ) Ġcontinuation . resume ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġcontinuation . resume With Exception ( RuntimeException (" response Ġbody Ġis Ġnull ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < T >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume With Exception ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }