package Ġnl . rv b soft dev . cur ios ity reporting . feature . explore Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġnl . rv b soft dev . cur ios ity reporting . data . Photo Ċ import Ġnl . rv b soft dev . cur ios ity reporting . databinding . ListItem Fragment Explore Binding Ċ Ċ /** ĠRe cycler view ĠList Adapter Ġwith ĠDiff Util Ġfor Ġphotos Ġin Ġthe Ġ' Explore ' Ġfragment Ġ**/ Ċ Ċ class ĠExplo re Photo Adapter ( private Ġval Ġlifecycle Owner : ĠLifecycle Owner , Ġprivate Ġval Ġexplore ViewModel : ĠExplo re ViewModel , Ġprivate Ġval ĠonClick Listener : Ġ( Photo , ĠInt ) Ġ-> ĠUnit ) ĊĠĠĠ Ġ: ĠList Adapter < Photo , ĠExplo re Photo Adapter . ViewHolder >( Diff Callback ) Ġ{ ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠListItem Fragment Explore Binding , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlifecycle Owner : ĠLifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġexplore ViewModel : ĠExplo re ViewModel ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( photo : ĠPhoto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . photo Ġ= Ġphoto ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġlifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= Ġexplore ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewHolder ( ListItem Fragment Explore Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ), Ġlifecycle Owner , Ġexplore ViewModel ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġphoto : ĠPhoto Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĠonClick Listener ( photo , Ġposition ) Ġ} ĊĠĠĠĠĠĠĠ Ġholder . bind ( photo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĠDiff Callback Ġ: ĠDiff Util . Item Callback < Photo >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠPhoto , Ġnew Item : ĠPhoto ) Ġ= Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠPhoto , Ġnew Item : ĠPhoto ) Ġ= Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ } Ċ