package Ġcom . pat ry kk os ier ad z ki . the animal app . ui . list . all Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . pat ry kk os ier ad z ki . the animal app . databinding . Animal Item Binding Ċ import Ġcom . pat ry kk os ier ad z ki . the animal app . domain . model . Animal Data Ċ import Ġcom . pat ry kk os ier ad z ki . the animal app . ui . list . Animal Diff Callback Ċ import Ġcom . pat ry kk os ier ad z ki . the animal app . utils . setOn Click Ċ Ċ class ĠAnimal s Adapter ( ĊĠĠĠ Ġprivate Ġval ĠonClick : Ġ( Int ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ: ĠP aging Data Adapter < Animal Data , ĠAnimal s Adapter . Animal s ViewHolder >( Animal Diff Callback ()) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠAnimal s ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠAnimal Item Binding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠAnimal s ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠAnimal s ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it ). setOn Click Ġ{ ĠonClick ( position ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠAnimal s ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠAnimal Item Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( animal : ĠAnimal Data ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item Ġ= Ġanimal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ