package Ġcom . office 1 4 . co ff eed ose . ui . Adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . co ff eed ose . databinding . View Dr ink ListItem Binding Ċ import Ġcom . office 1 4 . co ff eed ose . domain . C offee Ċ import Ġcom . office 1 4 . co ff eed ose . ui . C offee ItemClickListener Ċ Ċ class ĠD rink s ListAdapter Ġ( private Ġval Ġclick Listener : ĠC offee ItemClickListener ) Ġ: ĠList Adapter < C offee , ĊĠĠĠĠĠĠĠ ĠD rink s ListAdapter . Dr inks ViewHolder >( C offee Item Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠD rink s ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠD rink s ViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠD rink s ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( click Listener , getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠD rink s ViewHolder Ġprivate Ġconstructor ( val Ġbinding : ĠView Dr ink ListItem Binding ) ĊĠĠĠĠĠĠĠ Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ci ClickListener : ĠC offee ItemClickListener , Ġitem : ĠC offee ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . click Listener Ġ= Ġci ClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠD rink s ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠView Dr ink ListItem Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠD rink s ViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠC offee Item Diff Callback Ġ: ĠDiff Util . Item Callback < C offee >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠC offee , Ġnew Item : ĠC offee ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠC offee , Ġnew Item : ĠC offee ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ } ĊĊĊ