/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 9 ĠD mit ri y ĠP onom aren ko Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ġor Ġmore Ġcontributor Ċ Ġ* Ġ Ġlicense Ġagreements . ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ġthis Ġwork Ġfor Ċ Ġ* Ġ Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . ĠThe ĠASF Ġlicenses Ġthis Ċ Ġ* Ġ Ġfile Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ċ Ġ* Ġ Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ċ Ġ* Ġ Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT Ċ Ġ* Ġ ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĠSee Ġthe Ċ Ġ* Ġ ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ċ Ġ* Ġ Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . dim owner . good weather . app . main Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . dim owner . good weather . App Constants Ċ import Ġcom . dim owner . good weather . R Ċ import Ġcom . dim owner . good weather . data . local . room . Weather Entity Ċ import Ġcom . dim owner . good weather . util . Time Utils Ċ import Ġcom . dim owner . good weather . util . Weather Utils Ċ Ċ class ĠWeather ListAdapter : ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊ ĉ private Ġvar Ġdata : ĠList < Weather Entity > Ġ= ĠArrayList () ĊĊ ĉ private Ġvar Ġitem ClickListener : ĠItem ClickListener ? Ġ= Ġnull Ċ ĉ private Ġvar Ġtemperature Format Ġ= ĠApp Constants . TEMP _ FORMAT _ CEL SI US ĊĊ ĉ private Ġvar Ġtime Format Ġ= ĠApp Constants . TIME _ FORMAT _ 2 4 H ĊĊ ĉ override Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ Ċĉ ĉ val Ġv Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . list _ item , Ġparent , Ġfalse ) Ċĉ ĉ return ĠItem ViewHolder ( v ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġon Bind ViewHolder ( h : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ Ċĉ ĉ val Ġpos Ġ= Ġh . adapter Position Ċĉ ĉ val Ġholder Ġ= Ġh Ġas ĠItem ViewHolder Ċĉ ĉ holder . name . text Ġ= ĠTime Utils . format Time ( data [ pos ]. dt Ġ* Ġ 1 0 0 0 , Ġtime Format ) Ċĉ ĉ holder . description . text Ġ= Ġdata [ pos ]. description Ċĉ ĉ holder . txt Temp . text Ġ= ĠWeather Utils . format Temp ( data [ pos ]. temp , Ġtemperature Format ) Ċĉ ĉ holder . image . setImage Resource ( Weather Utils . weather Icon Code To Resource ( data [ pos ]. icon )) ĊĊĉ ĉ holder . view . setOnClickListener Ġ{ Ġv Ġ-> Ġitem ClickListener ?. on Item Click ( v , Ġpos ) Ġ} Ċ ĉ } ĊĊ ĉ override Ġfun ĠgetItem Count (): ĠInt Ġ{ Ċĉ ĉ return Ġdata . size Ċ ĉ } ĊĊ ĉ fun ĠsetData ( data : ĠList < Weather Entity >) Ġ{ Ċĉ ĉ this . data Ġ= Ġdata Ċĉ ĉ notify DataSet Changed () Ċ ĉ } ĊĊ ĉ fun Ġupdate Temperature Format ( temperature Format : ĠInt ) Ġ{ Ċĉ ĉ this . temperature Format Ġ= Ġtemperature Format Ċĉ ĉ notify Item Range Changed ( 0 , Ġdata . size ) Ċ ĉ } ĊĊ ĉ fun Ġupdate Time Format ( time Format : ĠInt ) Ġ{ Ċĉ ĉ this . time Format Ġ= Ġtime Format Ċĉ ĉ notify Item Range Changed ( 0 , Ġdata . size ) Ċ ĉ } ĊĊ ĉ fun Ġset ItemClickListener ( item ClickListener : ĠItem ClickListener ) Ġ{ Ċĉ ĉ this . item ClickListener Ġ= Ġitem ClickListener Ċ ĉ } ĊĊ ĉ internal Ġinner Ġclass ĠItem ViewHolder ( var Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ Ċĉ ĉ var Ġname : ĠTextView Ġ= Ġview . findViewById ( R . id . list _ item _ name ) Ċĉ ĉ var Ġdescription : ĠTextView Ġ= Ġview . findViewById ( R . id . list _ item _ description ) Ċĉ ĉ var Ġimage : ĠImageView Ġ= Ġview . findViewById ( R . id . list _ item _ image ) Ċĉ ĉ var Ġtxt Temp : ĠTextView Ġ= Ġview . findViewById ( R . id . list _ item _ temp ) Ċ ĉ } ĊĊ ĉ interface ĠItem ClickListener Ġ{ Ċĉ ĉ fun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ) Ċ ĉ } Ċ }