package Ġcom . android . skeleton . feature . recipe Ċ Ċ import Ġandroid . content . res . Resources Ċ 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 . android . skeleton . databinding . Card Recipe Binding Ċ import Ġcom . android . skeleton . domain . Recipe Ċ Ċ /** Ċ Ġ* ĠAd ap ts Ġ[ Recipe ] s Ġto Ġ[ RecyclerView . ViewHolder ] s . Ċ Ġ*/ Ċ class ĠAdapter Recipe : ĊĠĠĠ ĠList Adapter < Recipe , ĠRecyclerView . ViewHolder >( Recipe Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder Recipe . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠViewHolder Recipe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView Ġrepresenting Ġan Ġ[ Recipe ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠViewHolder Recipe Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠCard Recipe Binding , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresources : ĠResources ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠViewHolder Recipe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠCard Recipe Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġparent . context . resources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder Recipe ( binding , Ġresources ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUpdates Ġitself Ġto Ġreflect Ġ[ Recipe ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( recipe : ĠRecipe ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recipe Ġ= Ġrecipe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠRecipe Diff Callback Ġ: ĠDiff Util . Item Callback < Recipe >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Recipe : ĠRecipe , Ġnew Recipe : ĠRecipe ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Recipe Ġ== Ġnew Recipe ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Recipe : ĠRecipe , Ġnew Recipe : ĠRecipe ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( old Recipe . label Ġ== Ġnew Recipe . label ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ