package Ġcom . rival dy . id . cock tail . ui Ċ Ċ 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 . bump tech . glide . G lide Ċ import Ġcom . rival dy . id . cock tail . R Ċ import Ġcom . rival dy . id . cock tail . databinding . Row Item C ock tail Binding Ċ import Ġcom . rival dy . id . core . data . model . api . dr ink . Dr ink Data Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġri val dy Ġon Ġ 0 5 / 0 1 / 2 2 . Ċ Ġ* ĠFind Ġme Ġon Ġmy ĠGithub Ġ-> Ġhttps :// github . com / im - o Ċ Ġ*/ Ċ Ċ class ĠMain Adapter ( ĊĠĠĠ Ġprivate Ġval Ġlistener : Ġ( Dr ink Data ) Ġ-> ĠUnit Ċ ) Ġ: ĠList Adapter < Dr ink Data , ĠMain Adapter . ViewHolder >( DIFF _ CALLBACK ) Ġ{ ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠRow Item C ock tail Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Item ( item : ĠD rink Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Image Ġ= Ġ"${ item . str Dr ink Thumb }/ preview " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( binding . root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . color . color Divider High ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . image IV ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . title TV . text Ġ= Ġitem . str Dr ink ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ Ġlistener ( item ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠRow Item C ock tail Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Item ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDIFF _ CALLBACK Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Dr ink Data >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠD rink Data , Ġnew Item : ĠD rink Data ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Dr ink Ġ== Ġnew Item . id Dr ink ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠD rink Data , Ġnew Item : ĠD rink Data ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }