package Ġcom . be et le stance . smart caller . ui . logs . adapter Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . be et le stance . smart caller . R Ċ import Ġcom . be et le stance . smart caller . data . states . Call Log Ċ import Ġcom . be et le stance . smart caller . databinding . Item View Call Logs Binding Ċ import Ġcom . be et le stance . smart caller . ui . logs . Call Logs ViewModel Ċ import Ġcom . be et le stance . smart caller . utils . bind With Layout Ċ Ċ class ĠCall Logs Adapter ( private Ġval ĠviewModel : ĠCall Logs ViewModel ) Ġ: ĊĠĠĠ ĠP aging Data Adapter < Call Log , ĠCall Logs Adapter . Contact ViewHolder >( Diff CallBack ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠContact ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠContact ViewHolder ( bind With Layout ( R . layout . item _ view _ call _ logs , Ġparent )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder Contact : ĠContact ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder Contact . binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Log Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Logs ViewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠContact ViewHolder ( val Ġbinding : ĠItem View Call Logs Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) ĊĊĠĠĠ Ġobject Ġ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 . number Ġ== Ġnew Item . number ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCall Log , Ġnew Item : ĠCall Log ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }