package Ġcom . go iz . poke dex . view . adapters Ċ Ċ 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 . lifecycle . LiveData Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . go iz . poke dex . R Ċ import Ġcom . go iz . poke dex . data . pokemon . Pokemon Ċ import Ġcom . go iz . poke dex . util . Po ke Utils Ċ import Ġcom . squareup . pic asso . Pic asso ĊĊ Ċ class ĠPokemon Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcell ClickListener : ĠCell ClickListener , ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext Ċ ) Ġ: ĠRecyclerView . Adapter < Pokemon Adapter . Pokemon ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpokemon List : ĠMutable List < Pokemon > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġ// ĠReturns Ġa Ġnew ĠViewHolder ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPokemon ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . pokemon _ item , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPokemon ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠReturns Ġsize Ġof Ġdata Ġlist ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpokemon List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠDisplays Ġdata Ġat Ġa Ġcertain Ġposition ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPokemon ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( pokemon List [ position ], Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġpokemon List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ClickListener . on Cell ClickListener ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate List ( list : ĠList < Pokemon > ){ ĊĠĠĠĠĠĠĠ Ġpokemon List . clear () ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ Ġpokemon Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon List . add ( pokemon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠCell ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Cell ClickListener ( data : ĠPokemon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPokemon ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpokemon Name : ĠTextView Ġ= ĠitemView . findViewById ( R . id . pokemon _ name ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpokemon Id : ĠTextView Ġ= ĠitemView . findViewById ( R . id . pokemon _ id ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpokemon Icon : ĠImageView Ġ= ĠitemView . findViewById ( R . id . pokemon _ icon ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpokemon Primary Type Ġ= ĠitemView . findViewById < ImageView >( R . id . primary _ type ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( pokemon Reference : ĠPokemon , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġpokemon Reference . name . let Ġ{ ĠPo ke Utils . capitalize ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Name . text Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Id . text Ġ= Ġpokemon Reference . id . let Ġ{ ĠPo ke Utils . id Mask ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage URL Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// raw . githubusercontent . com / Po ke API / sprites / master / sprites / pokemon / other / official - art work /${ pokemon Reference . id }. png " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( image URL ). into ( pokemon Icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Primary Type . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo ke Utils . getImage By String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Reference . types [ 0 ]. type . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ