package Ġcom . net no vel reader . ui . adapters Ċ Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . net no vel reader . R Ċ import Ġcom . net no vel reader . databinding . Item Site Selector Binding Ċ import Ġcom . net no vel reader . repo . db . Site Selector Entity Ċ import Ġcom . net no vel reader . vm . Site Selector ViewModel Ċ Ċ class ĠSite Selector Page ListAdapter ( val Ġvm : ĠSite Selector ViewModel ?) Ġ: ĊĠĠĠ ĠP aged ListAdapter < Site Selector Entity , ĠSite Selector Page ListAdapter . Selector ViewHolder >( diff Callback ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdiff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Site Selector Entity >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠSite Selector Entity , Ġnew Item : ĠSite Selector Entity ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item ._ id Ġ?: Ġ- 1 Ġ== Ġnew Item ._ id Ġ?: Ġ- 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠSite Selector Entity , Ġnew Item : ĠSite Selector Entity ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSelector ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Item Site Selector Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ site _ selector , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSelector ViewHolder ( binding , Ġvm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSelector ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind To ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSelector ViewHolder ( var Ġbinding : ĠItem Site Selector Binding , Ġval Ġvm : ĠSite Selector ViewModel ?) Ġ: ĊĠĠĠĠĠĠĠ Ġandroidx . recyclerview . widget . RecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind To ( entity : ĠSite Selector Entity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item Data Ġ= Ġentity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= Ġvm ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }