package Ġorg . j dc . template . ux . directory Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġorg . j dc . template . databinding . ListItem Binding Ċ import Ġorg . j dc . template . util . ext . in flater Ċ import Ġorg . j dc . template . util . ext . setOnClickListener Ċ import Ġorg . j dc . template . model . db . main . directory item . Directory Item Ċ Ċ class ĠDirectory Adapter ( ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠDirectory ViewModel Ċ ) Ġ: ĠList Adapter < Directory Item , ĠDirectory Adapter . ViewHolder >( DIFF _ CALLBACK ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( parent ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Directory Individual Clicked ( getItem ( position )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . binding . list Item TextView . text Ġ= ĠgetItem ( position ). get FullName () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( parent : ĠViewGroup , Ġval Ġbinding : ĠListItem Binding Ġ= ĠListItem Binding . inflate ( parent . in flater (), Ġparent , Ġfalse )) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDIFF _ CALLBACK : ĠDiff Util . Item Callback < Directory Item > Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Directory Item >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠDirectory Item , Ġnew Item : ĠDirectory Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠDirectory Item , Ġnew Item : ĠDirectory Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . firstName Ġ== Ġnew Item . firstName Ġ&& Ġold Item . lastName Ġ== Ġnew Item . lastName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ