package Ġcom . se ign eur . ga uv ain . wow splash . ui . list . user Ċ Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . se ign eur . ga uv ain . wow splash . data . model . user . User Ċ import Ġcom . se ign eur . ga uv ain . wow splash . ui . base . paging . adapter . Base Paged ListAdapter Ċ import Ġcom . se ign eur . ga uv ain . wow splash . ui . base . paging . Network Item Callback Ċ Ċ class ĠSearch User ListAdapter ( private Ġval Ġnetwork Item Callback : ĠNetwork Item Callback ) ĊĠĠĠ Ġ: ĠBase Paged ListAdapter < User , ĠRecyclerView . ViewHolder >( User Diff Callback , network Item Callback ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠviewHolder : ĠRecyclerView . ViewHolder ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠUser Item ViewHolder . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Parent View ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġbind Item Data ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bind Item Data ( holder , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠUser Item ViewHolder ). bind To ( getItem ( position ) !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetUser From Pos ( pos : ĠInt ): ĠUser ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetItem ( pos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠUser Diff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < User >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠUser , Ġnew Item : ĠUser ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ=== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠUser , Ġnew Item : ĠUser ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }