package Ġcom . example . poke dex . presentation . pok em ons Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . poke dex . data . model . Pokemon List Ċ import Ġcom . example . poke dex . databinding . Item Pokemon Binding Ċ import Ġcom . example . poke dex . utils . Extensions . Companion . load Ċ import Ġjava . util .* Ċ Ċ class ĠPokemon ListAdapter ( private Ġval Ġpok em ons : ĠList < Pokemon List >, Ġprivate Ġval Ġon ItemClickListener : Ġ( String , ĠInt , ĠString ) Ġ-> ĠUnit ): ĠRecyclerView . Adapter < Pokemon ListAdapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġclass ĠViewHolder ( item Pokemon Binding : ĠItem Pokemon Binding , Ġprivate Ġval Ġon ItemClickListener : Ġ( imageUrl : ĠString , Ġnumber Pokemon : ĠInt , Ġpokemon Name : ĠString ) Ġ-> ĠUnit ): ĠRecyclerView . ViewHolder ( item Pokemon Binding . root ){ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnumber Ġ= Ġitem Pokemon Binding . number Pokemon ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġname Ġ= Ġitem Pokemon Binding . name Pokemon ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Ġ= Ġitem Pokemon Binding . img Pokemon ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠimageUrl Ġ= Ġ" https :// raw . githubusercontent . com / Po ke API / sprites / master / sprites / pokemon /" ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind View ( pokemon : ĠPokemon List , Ġpokemon Number : ĠInt ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumber . text Ġ= Ġpokemon Number . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . text Ġ= Ġpokemon . name . capitalize ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . load ("$ imageUrl $ pokemon Number . png ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener . invoke ("$ imageUrl $ pokemon Number . png ", Ġpokemon Number , Ġpokemon . name . capitalize ( Locale . getDefault ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Binding Ġ= ĠItem Pokemon Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view Binding , Ġon ItemClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind View ( pok em ons [ position ], Ġposition + 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġpok em ons . count () ĊĊ Ċ }