package Ġcom . re vis . ui . contacts Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . re vis . ui . contacts . Call Logs ViewHolder . Call Log Item Holder Ċ import Ġcom . re vis . databinding . ListItem Call Log Binding Ċ Ċ /** Ċ Ġ* ĠAdapter Ġclass Ġof Ġthe ĠCall Logs ĠRecyclerView . Ċ Ġ*/ Ċ class ĠCall Logs Adapter Ġ: ĠList Adapter < Call Log , ĠCall Logs ViewHolder >( Call Logs Diff Callback ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCall Logs ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCall Log Item Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠListItem Call Log Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCall Logs ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠCall Log Item Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Log Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠCall Logs ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠ Ġclass ĠCall Log Item Holder ( ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠListItem Call Log Binding ĊĠĠĠ Ġ) Ġ: ĠCall Logs ViewHolder ( binding . root ) Ċ } Ċ Ċ object ĠCall Logs Diff Callback Ġ: ĠDiff Util . Item Callback < Call Log >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCall Log , Ġnew Item : ĠCall Log ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCall Log , Ġnew Item : ĠCall Log ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ } Ċ