package Ġcom . android . stores _ app . ui Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android . stores _ app . R Ċ import Ġcom . android . stores _ app . data . model . Stores Ċ import Ġcom . android . stores _ app . databinding . Adapter Stores Binding Ċ Ċ class ĠStores Adapter Ġ: ĊĠĠĠ ĠP aging Data Adapter < Stores , ĠStores Adapter . My ViewHolder >( Pix ab ay Item Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġ// ĠOVER RIDE Ġ--- ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMy ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠAdapter Stores Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĠR . layout . adapter _ stores , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ Ġholder . bind ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ= Ġposition ĊĊĠĠĠ Ġinner Ġclass ĠMy ViewHolder ( private Ġval Ġbinding : ĠAdapter Stores Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( stores : ĠStores ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . stores Ġ= Ġstores ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠP ix ab ay Item Diff Callback Ġ: ĠDiff Util . Item Callback < Stores >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠStores , Ġnew Item : ĠStores ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġold Item . stores ID Ġ== Ġnew Item . stores ID ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠStores , Ġnew Item : ĠStores ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item Ċ }