package Ġcom . inion gun . t iv bible . reader . read . adapters Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠI sa ac ĠIn ion gun Ġon Ġ 1 8 / 0 4 / 2 0 2 0 . Ċ Ġ* ĠFor ĠT iv ĠBible Ġproject . Ċ Ġ*/ Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . inion gun . t iv bible . entities . Ver se Ċ import Ġcom . inion gun . t iv bible . reader . databinding . Ver se Layout New Binding Ċ import Ġcom . inion gun . t iv bible . reader . read . Read ViewModel New Ċ Ċ /** Ċ Ġ* ĠAdapter Ġfor Ġthe Ġtask Ġlist . ĠHas Ġa Ġreference Ġto Ġthe Ġ[ Read ViewModel New ] Ġto Ġsend Ġactions Ġback Ġto Ġit . Ċ Ġ*/ Ċ class ĠVer ses Adapter New ( private Ġval ĠviewModel : ĠRead ViewModel New ) Ġ: ĊĠĠĠ ĠList Adapter < Ver se , ĠVer ses Adapter New . ViewHolder >( Ver ses New Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġver se Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( viewModel , Ġver se ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder Ġprivate Ġconstructor ( val Ġbinding : ĠVer se Layout New Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( viewModel : ĠRead ViewModel New , Ġver se : ĠVer se ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . verse Ġ= Ġver se ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠVer se Layout New Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCallback Ġfor Ġcalculating Ġthe Ġdiff Ġbetween Ġtwo Ġnon - null Ġitems Ġin Ġa Ġlist . Ċ Ġ* Ċ Ġ* ĠUsed Ġby ĠList Adapter Ġto Ġcalculate Ġthe Ġminimum Ġnumber Ġof Ġchanges Ġbetween Ġand Ġold Ġlist Ġand Ġa Ġnew Ċ Ġ* Ġlist Ġthat 's Ġbeen Ġpassed Ġto Ġ` submit List `. Ċ Ġ*/ Ċ class ĠVer ses New Diff Callback Ġ: ĠDiff Util . Item Callback < Ver se >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠVer se , Ġnew Item : ĠVer se ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠVer se , Ġnew Item : ĠVer se ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ }