package Ġcom . ame en . e _ store . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Async List Differ Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ame en . e _ store . R Ċ import Ġcom . ame en . e _ store . data . model . Review Model Ċ import Ġcom . ame en . e _ store . databinding . Item Review Binding Ċ import Ġcom . bump tech . glide . G lide Ċ Ċ class ĠReview Adapter () Ġ: ĠRecyclerView . Adapter < Review Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠItem Review Binding ? Ġ= Ġnull ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( val Ġbinding : ĠItem Review Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) ĊĊĠĠĠ Ġval Ġdiffer CallBack Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Review Model >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠReview Model , Ġnew Item : ĠReview Model ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . review UserId Ġ== Ġnew Item . review UserId ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠReview Model , Ġnew Item : ĠReview Model ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdiffer Ġ= ĠAsync List Differ ( this , Ġdiffer CallBack ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠItem Review Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder (_ binding !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġdiffer . current List [ position ] ĊĊĠĠĠĠĠĠĠ Ġholder . binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrate Username . text Ġ= Ġ" Test " Ġ// item . review UserId . userName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrate Review Text . text Ġ= Ġitem . review Body ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrating Bar . rating Ġ= Ġitem . review Rating ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with (_ binding !!. root ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// item . review UserId . user Image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ account _ profile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( rate User Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdiffer . current List . size ĊĊ Ċ }