package Ġcom . demo . ny article app . ui . home čĊč Ċ import Ġandroid . content . Context č Ċ 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 . bump tech . glide . G lide č Ċ import Ġcom . demo . ny article app . R č Ċ import Ġcom . demo . ny article app . data . model . Results Item č Ċ import Ġcom . demo . ny article app . ui . MainActivity čĊč Ċ class ĠR V Articles Adapter ( čĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ? č Ċ ) Ġ: ĠRecyclerView . Adapter < RV Articles Adapter . ListView Holder >() Ġ{ čĊčĊĠĠĠ Ġprivate Ġvar Ġarticles : ĠMutable List < Results Item ?> Ġ= Ġarray ListOf () čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠList ViewHolder Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ article _ layout , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġreturn ĠList ViewHolder ( view ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġarticles . size čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠList ViewHolder , Ġposition : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġarticles [ position ] čĊĠĠĠĠĠĠĠ Ġholder . bind ( context , Ġitem ) čĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ?. let Ġ{ Ġ( context Ġas ĠMainActivity ). open Detailed Page ( item ) Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinner Ġclass ĠList ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtv Title Ġ= Ġview . findViewById < TextView >( R . id . tv Title ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtv Sub Title Ġ= Ġview . findViewById < TextView >( R . id . tv Subtitle ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġiv Thumbnail Ġ= Ġview . findViewById < ImageView >( R . id . iv Thumbnail ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtv Date Ġ= Ġview . findViewById < TextView >( R . id . tv Date ) čĊĠĠĠĠĠĠĠ Ġfun Ġbind ( context : ĠContext ?, Ġcontent : ĠResults Item ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Title . text Ġ= Ġcontent ?. title čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Sub Title . text Ġ= Ġcontent ?. by line čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Date . text Ġ= Ġcontent ?. published Date čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content ?. media ?. isNotEmpty () !! ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . media [ 0 ]?. media Metadata ?. forEach Ġ{ Ġitem Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item ?. format Ġ== Ġ" Standard ĠThumb nail ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġitem . url Ġ?: Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. circle Crop () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . placeholder ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Thumbnail ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġupdate List ( list : ĠList < Results Item ?> ) Ġ{ čĊĠĠĠĠĠĠĠ Ġarticles . clear () čĊĠĠĠĠĠĠĠ Ġarticles . addAll ( list ) čĊĠĠĠ Ġ} čĊč Ċ }