package Ġes . fr on 9 9 . Food organ ize . Adapters Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . PopupMenu Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Store Owner Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġes . fr on 9 9 . Food organ ize . Dao . Model . Food Dao Ċ import Ġes . fr on 9 9 . Food organ ize . R Ċ import Ġes . fr on 9 9 . Food organ ize . ViewModels . Activity Total VM Ċ import Ġjava . util .* Ċ Ċ class ĠAdapter List Food ( context Ġ: ĠViewModel Store Owner , ĠdataSet : ĠArrayList < Food Dao > ?) Ġ: ĠRecyclerView . Adapter < Adapter List Food . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġactivity Total VM Ġ: ĠActivity Total VM ĊĠĠĠ Ġprivate Ġvar Ġfood : ĠArrayList < Food Dao > ĊĊĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt View Name Menu : ĠTextView Ġ= Ġview . findViewById ( R . id . name Food ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt View Small Description Menu : ĠTextView Ġ= Ġview . findViewById ( R . id . small Description Food ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠimageView : ĠImageView Ġ= Ġview . findViewById ( R . id . imageView ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġoptions Menu : ĠImageView Ġ= Ġview . findViewById ( R . id . textView Options ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Txt View Name Menu ( name Menu : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt View Name Menu . text Ġ= Ġname Menu ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Txt View Small Description Menu ( small Description Menu : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt View Small Description Menu . text Ġ= Ġsmall Description Menu ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset ImageView ( res ourse Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . setImage Resource ( res ourse Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Options Menu ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Menu . setImage Resource ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Options Menu () Ġ: ĠImageView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoptions Menu ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( view Group : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( view Group . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . row _ list _ food _ and _ menus , Ġview Group , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfood Ġ= Ġfood [ position ] ĊĠĠĠĠĠĠĠ ĠviewHolder . set Txt View Name Menu ( food . name ) ĊĠĠĠĠĠĠĠ ĠviewHolder . set Txt View Small Description Menu ( food . small Description ) ĊĠĠĠĠĠĠĠ ĠviewHolder . set ImageView ( R . drawable . icon _ food ) ĊĠĠĠĠĠĠĠ ĠviewHolder . getOptions Menu (). setOnClickListener Ġ{ Ġview : ĠView Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( view . context , ĠviewHolder . getOptions Menu ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . inflate ( R . menu . menu _ row _ list _ menu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . item Eliminar Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( view . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Se Ġva Ġa Ġelim inar Ġesta Ġcom ida ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" Â¿ Est as Ġsegu ro Ġque Ġde sea Ġelim inar la ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Si ") Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> Ġactivity Total VM . drop Food ( Food Dao ( food . id Food , Ġ"", Ġ"", Ġ 0 ))} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" No ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . item Mod ificar Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Total VM . food s Selected Ġ= Ġfood ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Total VM . change Activity Selected (" Fragment Create Food ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn MenuItem ClickListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfood . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġfood Ġ= ĠArrayList ( data Set ) ĊĠĠĠĠĠĠĠ Ġactivity Total VM Ġ= ĠViewModel Provider ( context ). get ( Activity Total VM :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Data ( data Set : ĠArrayList < Food Dao >? ){ ĊĠĠĠĠĠĠĠ Ġthis . food . clear () ĊĠĠĠĠĠĠĠ Ġthis . food Ġ= ĠArrayList ( data Set ) ĊĠĠĠĠĠĠĠ Ġthis . notify DataSet Changed () ĊĠĠĠ Ġ} Ċ }