package Ġcom . k ave . Wh ats Hot . app Ċ Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . TextView Ċ import Ġcom . be ust . kl ax on . JsonArray Ċ import Ġcom . be ust . kl ax on . JsonObject Ċ import Ġcom . be ust . kl ax on . Parser Ċ import Ġcom . github . kit tin un f . fuel . Fuel Ċ import Ġcom . github . kit tin un f . fuel . core . Fuel Error Ċ Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ main . view .* Ċ // import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ import Ġkotlin . concurrent .* Ċ import Ġcom . k ave . Wh ats Hot . R ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar Ġther mo meter : ĠTh er mo meter Ġ= ĠfindViewById ( R . id . ther mo meter ) ĊĠĠĠ Ġprivate Ġvar Ġtemperature : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView Ġ: ĠRecyclerView ĊĠĠĠ Ġlateinit Ġvar Ġre cyc let View Adapter Ġ: ĠRecyclerView . Adapter < Post Adapter Current . ViewHolder > ĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView LayoutManager Ġ: ĠRecyclerView . LayoutManager ĊĠĠĠ Ġvar Ġadapter : ĠPost Adapter Current ? Ġ= Ġnull Ċ // ĠĠĠ Ġvar Ġadapter : ĠPost Adapter ? Ġ= Ġnull Ċ Ċ // ĠĠĠ Ġvar Ġm Swipe Refresh Layout : ĠSw ipe Refresh Layout ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊ Ċ // ĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout Ġ= ĠfindViewById ( R . id . srl Container ) Ġas ĠSw ipe Refresh Layout Ċ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġc 3 : ĠCircular ProgressBar Ġ= ĠfindViewById ( R . id . circular progressbar 1 ) ĊĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĠĠĠĠĠĠĠ Ġval Ġtimer Ġ= Ġfixed Rate Timer ( period = 6 0 0 0 0 . to Long (), Ġdaemon = true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetData () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup Views (){ ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= ĠfindViewById ( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġre cyclerView LayoutManager Ġ= ĠLinearLayoutManager ( application Context ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġre cyclerView LayoutManager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Request ( url : ĠString , Ġsuccess : Ġ( String ) Ġ-> ĠUnit , Ġfailure : Ġ( Fuel Error ) Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠF uel . get ( url ). response String () Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v (" Error ", Ġerror !!. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailure ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonSuccess Ġ= Ġdata Ġ?: Ġreturn @ response String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess ( on Success ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetData (){ Ċ // ĠĠĠĠĠĠĠ Ġval Ġposts Ġ= Ġ" https :// json placeholder . typ icode . com / posts " ĊĠĠĠĠĠĠĠ Ġval Ġposts Ġ= Ġ" http :// 1 5 7 . 8 8 . 5 8 . 1 3 4 : 5 5 7 8 / current " ĊĠĠĠĠĠĠĠ Ġget Request ( posts , success Ġ= Ġ{ Ġresponse Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠParser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġ Ġparser . parse ( string Builder ) Ġas ĠJson Array < JsonObject > Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Model Ġ Ġ= Ġmodel . map Ġ{ ĠPost Model ( it )}. filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Current Ġ Ġ= Ġmodel . map Ġ{ ĠPost Current ( it )}. filter NotNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . adapter Ġ= ĠPost Adapter Current ( post Current ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyc let View Adapter Ġ= Ġadapter !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġre cyc let View Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyc let View Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. onClick Ġ= Ġ{ Ġview Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Position Ġ= Ġre cyclerView . getChild Layout Position ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ITEM : POSITION ", post Current [ item Position ]. current Date . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" code ", Ġpost Current . first (). current Temp . toString ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" code ", Ġpost Current . first (). current H umi ) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" code ", post Model . first (). body ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Mapped :: ", post Model . first (). title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" d ode ", post Model . first (). userId . toString ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Mapped :: ", post Model . first (). id . toString ()) ĊĊ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp : ĠDouble Ġ= Ġ 2 7 . 5 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Ġ= Ġtemp . toFloat () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġther mo meter !!. setCurrent Temp ( temperature ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġc 3 : ĠCircular ProgressBar Ġ= ĠfindViewById ( R . id . circular progressbar 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhum Ġ= Ġ Ġpost Current . first (). current H umi !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhum INT : ĠInt ? Ġ= Ġhum . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc 3 . setTitle ("$ hum Ġ% ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc 3 . set Sub Title (" H umed ad ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġc 3 . set Progress ( hum ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhum INT ?. let Ġ{ Ġc 3 . set Progress ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp 2 : ĠDouble ? Ġ= Ġpost Current . first (). current Temp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Ġ= Ġtemp 2 !!. toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġther mo meter . setCurrent Temp ( temperature ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val ĠtextView : ĠTextView Ġ= ĠfindViewById ( R . id . activity _ main ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp String : ĠString Ġ= Ġtemp 2 . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp View . setText ( temp String +" ĠÂ º C ") ĊĊĊĊ ĊĊĠĠĠĠĠĠĠ Ġ}, failure Ġ= { Ġerror Ġ-> ĊĊĠĠĠĠĠĠĠ Ġ} Ġ) ĊĠĠĠ Ġ} ĊĊĊ Ċ } Ċ Ċ private Ġfun ĠTextView . setText ( temp String : ĠString , Ġfunction : Ġ() Ġ-> ĠUnit ) Ġ{} Ċ