package Ġcom . example . flix ster Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . code path . as yn ch ttp client . Async HttpClient Ċ import Ġcom . code path . as yn ch ttp client . callback . Json HttpResponse Handler Ċ import Ġokhttp 3 . Headers Ċ import Ġorg . json . JSONException Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" MainActivity " Ċ private Ġconst Ġval ĠNOW _ PLAY ING _ URL Ġ= Ġ" https :// api . the mov ied b . org / 3 / movie / now _ playing ? api _ key = a 0 7 e 2 2 bc 1 8 f 5 cb 1 0 6 bfe 4 cc 1 f 8 3 ad 8 ed " Ċ // Ġif Ġneed Ġto Ġcheck Ġwhether Ġon Failure Ġis Ġworking , Ġadd Ġ_ ERROR Ġto Ġthe Ġend Ġof Ġapi Ġkey Ċ // Ġprivate Ġconst Ġval ĠNOW _ PLAY ING _ URL Ġ= Ġ" https :// api . the mov ied b . org / 3 / movie / now _ playing ? api _ key = a 0 7 e 2 2 bc 1 8 f 5 cb 1 0 6 bfe 4 cc 1 f 8 3 ad 8 ed _ ERROR " Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// Ġdefine Ġa Ġprivate Ġinstance Ġvariable ĊĠĠĠ Ġprivate Ġval Ġmovies Ġ= Ġmutable ListOf < Movie >() ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv Movies : ĠRecyclerView ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Ġ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġrv Movies Ġ= ĠfindViewById ( R . id . rv Movies ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmovie Adapter Ġ= ĠMovie Adapter ( this , Ġmovies ) ĊĠĠĠĠĠĠĠ Ġrv Movies . adapter Ġ= Ġmovie Adapter ĊĠĠĠĠĠĠĠ Ġrv Movies . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠAsync HttpClient () ĊĠĠĠĠĠĠĠ Ġ// Ġparams : Ġconst Ġval , Ġresponse Ġhandler Ġ( an Ġobject ) ĊĠĠĠĠĠĠĠ Ġclient . get ( NOW _ PLAY ING _ URL , Ġobject : ĠJson HttpResponse Handler () Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstatusCode : ĠInt , Ġheaders : ĠHeaders ?, Ġresponse : ĠString ?, Ġthrowable : ĠThrowable ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlog Ġout Ġthe Ġresult Ġof Ġwhatever Ġhappened Ġin Ġcallback Ġfunc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlog . e Ġis Ġlogging Ġat Ġthe Ġerror Ġlevel Ġbecause Ġit 's Ġon Failure ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfirst Ġparam Ġis Ġa Ġtag Ġ( class Ġname ), Ġsecond Ġis Ġa Ġmessage , Ġstatus Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Failure Ġ$ statusCode ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( statusCode : ĠInt , Ġheaders : ĠHeaders ?, Ġjson : ĠJSON ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlog . i Ġis Ġat Ġthe Ġinfo Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwant Ġit Ġto Ġprint Ġout Ġthe Ġjson Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" on Success : ĠJSON Ġdata Ġ$ json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpass Ġin Ġthe Ġkey Ġto Ġthe Ġdesired Ġjson Ġkey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmovie JsonArray Ġrepresents Ġlist Ġof Ġmovies ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmovie JsonArray Ġ= Ġjson . jsonObject . get JSONArray (" results ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovies . addAll ( Movie . fromJson Array ( movie JsonArray )) Ġ Ġ// Ġc ld Ġthrow Ġjson Ġexception ; Ġuse Ġtry / catch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Movie ĠList Ġ$ movies ") ĠĠ Ġ// Ġ Ġlog Ġout Ġparsed Ġmovies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Encounter ed Ġexception Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ