package Ġcom . example . webapp 1 čĊč Ċ import Ġandroid . graphics . Color č Ċ import Ġandroid . support . v 7 . app . AppCompatActivity č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager č Ċ import Ġcom . google . gson . Json Element č Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* čĊč Ċ import Ġkotlinx . android . synt hetic . main . recyclerview _ layout .* č Ċ import Ġokhttp 3 . Ok HttpClient č Ċ import Ġokhttp 3 . logging . Http Logging Interceptor č Ċ import Ġretrofit 2 . Call č Ċ import Ġretrofit 2 . Callback č Ċ import Ġretrofit 2 . Response č Ċ import Ġretrofit 2 . Ret rofit č Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory č Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory čĊč Ċ class ĠRecyclerView Activity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġfun Ġcreate ApiService (): ĠApi Service Ġ{ čĊčĊč ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterceptor . setLevel ( Http Logging Interceptor . Level . BODY ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder (). add Interceptor ( interceptor ). build () čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// req res . in ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( ApiService :: class . java ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . recyclerview _ layout ) čĊčĊĠĠĠĠĠĠĠ Ġre cyclerView _ main . layout Manager Ġ= ĠLinearLayoutManager ( this ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġmain Adapter Ġ= ĠMain Adapter () čĊčĊčĊĠĠĠĠĠĠĠ Ġval Ġapi Service Ġ= ĠRecyclerView Activity . create ApiService () čĊĠĠĠĠĠĠĠ Ġval Ġweather Call Ġ= Ġapi Service . get Weather Data () čĊĠĠĠĠĠĠĠ Ġweather Call . enqueue ( object Ġ: ĠCallback < Json Element > Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Json Element >, Ġt : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . setText (" Error ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Json Element >, Ġresponse : ĠResponse < Json Element >) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġresponse . body ()?. as JsonObject čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Arr Ġ= Ġobj ?. get (" data ") ?. as JsonArray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray list Ġ= ĠArrayList < Model . Companion . Custom Model >() čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Arr ?. forEach Indexed Ġ{ Ġindex , Ġjson Element Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġjson Element . as JsonObject čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom Model Ġ= ĠModel . Companion . Custom Model () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Model . id Ġ= Ġo . get (" id ") ?. asString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ĠV VV VV VV VV VV V ĠĠ Ġ" Ġ+ Ġo . get (" name ") ?. asString ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Model . name Ġ= Ġo . get (" name ") ?. asString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray list . add ( custom Model ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index == 2 0 ) Ġreturn @ forEach Indexed čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Adapter . setter ( array list ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView _ main . adapter Ġ= Ġmain Adapter čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ}) čĊčĊĠĠĠĠĠĠĠ Ġ// textView 2 . text Ġ= Ġ" CLICK ED ĠITEM Ġ: Ġ"+ intent čĊčĊčĊĠĠĠ Ġ} č Ċ } čĊ