package Ġcom . learn . az . room booking . ui . list Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . learn . az . room booking . R Ċ import Ġcom . learn . az . room booking . database . Meeting Room Ċ import Ġcom . learn . az . room booking . databinding . Room ListItem View Binding Ċ Ċ class ĠMeeting Room Adapter : ĠList Adapter < Meeting Room , ĠRoom Item ViewHolder >( Room Item Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRoom Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRoom Item ViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRoom Item ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRoom Item ViewHolder Ġprivate Ġconstructor ( val Ġbinding : ĠRoom ListItem View Binding ) ĊĠĠĠĠĠĠĠ Ġ: ĠRecyclerView . ViewHolder ( binding . root ){ ĊĊĠĠĠ Ġfun Ġbind ( room : ĠMeeting Room ){ ĊĠĠĠĠĠĠĠ Ġbinding . room Ġ= Ġroom ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠRoom Item ViewHolder { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding : ĠRoom ListItem View Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater , ĠR . layout . room _ list _ item _ view , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom Item ViewHolder ( binding ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRoom Item Diff Callback : ĠDiff Util . Item Callback < Meeting Room > (){ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠMeeting Room , Ġnew Item : ĠMeeting Room ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . roomId Ġ== Ġnew Item . roomId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠMeeting Room , Ġnew Item : ĠMeeting Room ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ Ċ } Ċ