package Ġcom . ank urt am be . food f unky app . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ank urt am be . food f unky app . R Ċ import Ġcom . ank urt am be . food f unky app . activity . Cart Activity Ċ import Ġcom . ank urt am be . food f unky app . model . Model Menu Ċ Ċ class ĠMenu Adapter ( ĊĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġrestaurant Id : ĠString , ĊĠĠĠ Ġprivate Ġval Ġrestaurant Name : ĠString , ĊĠĠĠ Ġprivate Ġval Ġproceed To Cart Passed : ĠRelative Layout , ĊĠĠĠ Ġprivate Ġval Ġbutton Pro ceed To Cart : ĠButton , ĊĠĠĠ Ġprivate Ġval Ġrestaurant Menu : ĠArrayList < Model Menu > Ċ ) Ġ: ĠRecyclerView . Adapter < Menu Adapter . ViewHolder Restaurant Menu >() Ġ{ ĊĊĊĠĠĠ Ġvar Ġitem Selected Count : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġproceed To Cart : ĠRelative Layout ĊĊĊĠĠĠ Ġvar Ġitems Selected Id Ġ= Ġarray ListOf < String >() ĊĊĊĠĠĠ Ġclass ĠViewHolder Restaurant Menu ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtextView SerialNumber : ĠTextView Ġ= Ġview . findViewById ( R . id . textView SerialNumber ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView ItemName : ĠTextView Ġ= Ġview . findViewById ( R . id . textView ItemName ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Item Price : ĠTextView Ġ= Ġview . findViewById ( R . id . textView Item Price ) ĊĠĠĠĠĠĠĠ Ġval Ġbutton AddTo Cart : ĠButton Ġ= Ġview . findViewById ( R . id . button AddTo Cart ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Restaurant Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ menu _ rv , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder Restaurant Menu ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġrestaurant Menu . size ĊĠĠĠĠĠĠĠ Ġreturn Ġrestaurant Menu . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder Restaurant Menu , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrestaurant MenuItem Ġ= Ġrestaurant Menu [ position ] ĊĊĠĠĠĠĠĠĠ Ġproceed To Cart Ġ= Ġproceed To Cart Passed // button Ġview Ġpassed Ġfrom Ġthe ĠRest aurant Menu Activity ĊĊĠĠĠĠĠĠĠ Ġ// click Ġlistener Ġto Ġthe Ġbutton Ġview ĠP assed Ġfrom Ġactivity Ġwhich Ġhas Ġthe Ġbutton Ġproceed Ġto Ġcart ĊĠĠĠĠĠĠĠ Ġbutton Pro ceed To Cart . setOnClickListener ( View . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCart Activity :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" restaurant Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestaurant Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) // Ġpass Ġthe Ġrestaurant Ġid Ġto Ġthe Ġnext Ġactivity ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" restaurant Name ", Ġrestaurant Name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" selected Items Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Selected Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) // pass Ġall Ġthe Ġitems Ġselected Ġby Ġthe Ġuser ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġholder . button AddTo Cart . setOnClickListener ( View . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder . button AddTo Cart . text . toString () Ġ== Ġ" Remove ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Selected Count -- // un selected ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Selected Id . remove ( holder . button AddTo Cart . tag . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . button AddTo Cart . text Ġ= Ġ" Add " ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Selected Count ++ // selected ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Selected Id . add ( holder . button AddTo Cart . getTag (). toString ()) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . button AddTo Cart . text Ġ= Ġ" Remove " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Selected Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproceed To Cart . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproceed To Cart . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġholder . button AddTo Cart . tag Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestaurant MenuItem . id Ġ+ Ġ"" // save Ġthe Ġitem Ġid Ġin ĠtextView Name ĠTag Ġ, will Ġbe Ġused Ġto Ġadd Ġto Ġcart ĊĠĠĠĠĠĠĠ Ġholder . textView SerialNumber . text Ġ= Ġ( position Ġ+ Ġ 1 ). toString () // position Ġstarts Ġfrom Ġ 0 ĊĠĠĠĠĠĠĠ Ġholder . textView ItemName . text Ġ= Ġrestaurant MenuItem . name ĊĠĠĠĠĠĠĠ Ġholder . textView Item Price . text Ġ= Ġ" âĤ ¹ " Ġ+ Ġrestaurant MenuItem . cost _ for _ one ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget SelectedItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Selected Count ĊĠĠĠ Ġ} Ċ Ċ }