/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 2 0 ĠOpen ĠFood ĠF acts Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġopen food facts . github . scr ach x . open food . features . all erg ens alert Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġopen food facts . github . scr ach x . open food . databinding . Item All erg ens Binding Ċ import Ġopen food facts . github . scr ach x . open food . models . entities . aller gen . All er gen Name Ċ import Ġopen food facts . github . scr ach x . open food . utils . Auto Up datable Adapter Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠAll erg ens Adapter ( ĊĠĠĠ Ġval ĠonDelete Button Click : Ġ( aller gen : ĠAll er gen Name ) Ġ-> ĠUnit , Ċ ) Ġ: ĠRecyclerView . Adapter < All erg ens Adapter . ViewHolder >(), ĠAuto Up datable Adapter Ġ{ ĊĊĠĠĠ Ġvar Ġall erg ens : ĠList < All er gen Name > Ġby ĠDeleg ates . observable ( emptyList ()) Ġ{ Ġ_, Ġold List , Ġnew List Ġ-> ĊĠĠĠĠĠĠĠ Ġauto Notify ( old List , Ġnew List ) Ġ{ Ġo , Ġn Ġ-> Ġo . aller gen Tag Ġ== Ġn . aller gen Tag Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontact View Ġ= ĠItem All erg ens Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( contact View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġall er gen Ġ= Ġall erg ens [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( aller gen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Button Click ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( view Holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led ( view Holder ) ĊĠĠĠĠĠĠĠ ĠviewHolder . unbind () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġall erg ens . size ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠItem All erg ens Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠAll er gen Name , ĠonDelete Button Click : Ġ( aller gen : ĠAll er gen Name ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . aller gen Name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . delete Button . setOnClickListener Ġ{ ĠonDelete Button Click ( item ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġun bind () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . delete Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ