package Ġk z . g vs x . to u . ui . article Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco il . load Ċ import Ġco il . transform . Rounded C orners Transformation Ċ import Ġk z . g vs x . to u . databinding . ListItem Image Binding Ċ Ċ class ĠImages Adapter ( private Ġval Ġclick Listener : Ġ( String , ĠView ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠList Adapter < String , ĠImages Adapter . ViewHolder >( Images Diff Callback ) Ġ{ ĊĊĠĠĠ Ġclass ĠViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠListItem Image Binding , ĊĠĠĠĠĠĠĠ Ġclick At Position : Ġ( Int , ĠView ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Thumb . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Pos Ġ= Ġbinding Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Pos Ġ!= ĠRecyclerView . NO _ POSITION ) Ġclick At Position ( adapter Pos , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( image : ĠString ) Ġ= Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Thumb . load ( image ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross fade ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformations ( Rounded C orners Transformation ( 1 6 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Item Image Binding Ġ= ĠListItem Image Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( list Item Image Binding ) Ġ{ Ġposition , Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener ( getItem ( position ), Ġview ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠImages Diff Callback Ġ: ĠDiff Util . Item Callback < String >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠString , Ġnew Item : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠString , Ġnew Item : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item Ċ }