package Ġedu . hm . cs . ma . tod og uru . task . completed Task Ċ Ċ 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 Ġedu . hm . cs . ma . tod og uru . database . Task Ċ import Ġedu . hm . cs . ma . tod og uru . databinding . Completed Task ViewHolder Binding Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠCompleted Task Adapter ( ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠListener Ċ ) Ġ: ĠList Adapter < Task , ĠCompleted Task Adapter . ViewHolder >( Completed Task Diff CallBack ()) Ġ{ ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( task : ĠTask ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ= ĠViewHolder . from ( parent ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ= Ġholder . bind ( getItem ( position ), Ġlistener ) ĊĊĠĠĠ Ġclass ĠViewHolder Ġprivate Ġconstructor ( private Ġval Ġbinding : ĠCompleted Task ViewHolder Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠCompleted Task ViewHolder Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( task : ĠTask , Ġlistener : ĠListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . task Ġ= Ġtask ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCompleted Task Diff CallBack Ġ: ĠDiff Util . Item Callback < Task >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠTask , Ġnew Item : ĠTask ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Check Ġif Ġtwo Ġitems Ġhas Ġthe Ġsame Ġdata ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠTask , Ġnew Item : ĠTask ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Used Ġto Ġreplace Ġtwo Ġitems ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ