package Ġcom . far id fa jr ak . kotlin _ playground . features . currency _ list Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . far id fa jr ak . kotlin _ playground . databinding . Binding Currency Adapter Item Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ class ĠCurrency ListAdapter ( var Ġc urrencies Ġ: ĠList < Currency Model >, Ġ Ġval Ġonclick Ġ: Ġ( currency Ġ: ĠCurrency Model )-> ĠUnit ) Ġ: ĠRecyclerView . Adapter < Currency ListAdapter . Holder >() Ġ{ ĊĊĠĠĠ Ġvar Ġfirst Data Ġ= Ġc urrencies ĊĊĠĠĠ Ġfun Ġapply Filter ( query Ġ: ĠString ){ ĊĠĠĠĠĠĠĠ Ġif ( query . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc urrencies Ġ= Ġfirst Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc urrencies Ġ= Ġfirst Data . filter Ġ{ Ġit . id . contains ( query ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠ Ġclass ĠH older ( val Ġbinding Ġ: ĠBinding Currency Adapter Item ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) ĊĠĠ Ġ{ ĊĠĠĠĠĠĠ Ġfun Ġbind ( currency Ġ: ĠCurrency Model , onClick Ġ: Ġ( currency Ġ: ĠCurrency Model )-> Unit ){ ĊĊĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( currency . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resize ( 1 0 0 , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . icon ) ĊĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . model Ġ= Ġcurrency ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . cv . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick ( currency ) ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbind ig Ġ= ĠBinding Currency Adapter Item . inflate ( LayoutInflater . from ( parent . context ), parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠH older ( bind ig ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠH older , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( currencies [ position ], onclick ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġc urrencies . count () Ċ }