package Ġdev . deb ale en . food runner . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdev . deb ale en . food runner . R Ċ import Ġdev . deb ale en . food runner . model . Restaurant Food Item UI Model Ċ import Ġdev . deb ale en . food runner . util . hide Ċ import Ġdev . deb ale en . food runner . util . show Ċ Ċ class ĠRest aurant Detail Adapter ( ĊĠĠĠ Ġprivate Ġvar Ġfood ItemList : ĠArrayList < Restaurant Food Item UI Model >, ĊĠĠĠ Ġprivate Ġval Ġclick Listener : ĠCart Button Listener Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Restaurant Detail Adapter . Restaurant Detail ViewHolder >() Ġ{ ĊĊĠĠĠ Ġfun Ġupdate DataList ( list : ĠArrayList < Restaurant Food Item UI Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfood ItemList Ġ= Ġlist ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRest aurant Detail ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . food _ item _ ui , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRest aurant Detail ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfood ItemList . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRest aurant Detail ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġfood ItemList [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( item , Ġclick Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠRest aurant Detail ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Serial : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Serial ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Food Name : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Food Name ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Cost For One : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Cost For One ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbtn AddTo Cart : ĠButton Ġ= Ġview . findViewById ( R . id . btn AddTo Cart ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbtn Remove From Cart : ĠButton Ġ= Ġview . findViewById ( R . id . btn Remove From Cart ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestaurant Food Item UI Item : ĠRest aurant Food Item UI Model , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener : ĠCart Button Listener ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Serial . text Ġ= Ġ( adapter Position Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Food Name . text Ġ= Ġrestaurant Food Item UI Item . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Cost For One . text Ġ= Ġrestaurant Food Item UI Item . cost ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( restaurant Food Item UI Item . isIn Cart ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Remove From Cart . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn AddTo Cart . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn AddTo Cart . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Remove From Cart . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn AddTo Cart . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Position Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn AddTo Cart . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Remove From Cart . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener . on AddTo Cart Button Click ( adapter Position , Ġrestaurant Food Item UI Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Remove From Cart . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Position Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Remove From Cart . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn AddTo Cart . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener . on Remove From Button Clicked ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestaurant Food Item UI Item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠCart Button Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon AddTo Cart Button Click ( position : ĠInt , Ġfood Item : ĠRest aurant Food Item UI Model ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Remove From Button Clicked ( position : ĠInt , Ġfood Item : ĠRest aurant Food Item UI Model ) ĊĠĠĠ Ġ} Ċ }