package Ġcom . example . re stop ass . main . common . membership Ċ Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . air bnb . par is . extensions . style Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . example . re stop ass . R Ċ import Ġcom . example . re stop ass . domain . Membership Ċ import Ġcom . example . re stop ass . main . ui . home . not En rolled Home . Not En rolled Home Fragment Ċ import Ġkotlinx . android . synt hetic . main . view _ membership _ item . view .* Ċ import Ġjava . lang . Class CastException Ċ Ċ class ĠMembers hip Adapter ( private Ġval Ġparent Fragment : ĠMembers hip Adapter Listener ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġmembership s : ĠList < Membership > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġmembership s . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( membership s [ position ]. is Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIEW TYPE _ TITLE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIEW TYPE _ MEMBER SHIP ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIEW TYPE _ TITLE Ġ-> ĠTitle ViewHolder . from ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIEW TYPE _ MEMBER SHIP Ġ-> ĠMembers hip ViewHolder . from ( parent , Ġmembership s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠClass CastException (" Unknown Ġview Type Ġ$ view Type ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmembership Ġ= Ġmembership s [ position ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( membership . is Title ) Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder Ġas ĠTitle ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( membership ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder Ġas ĠMembers hip ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( membership , Ġparent Fragment , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMembers hip ViewHolder ( val Ġview : ĠView , Ġval Ġmembership s : ĠList < Membership >) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( membership : ĠMembers hip , Ġparent Fragment : ĠMembers hip Adapter Listener , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( membership . img ). into ( image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembership Title . text Ġ= Ġmembership . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Tag . text Ġ= Ġresources . getString ( R . string . price _ tag , Ġmembership . price . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . text Ġ= Ġmembership . description ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrest aurants Amount . text Ġ= Ġmembership . rest aurants ?. size . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdis hes Ġ= Ġmembership . dishes Amount () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis hes Amount . text Ġ= Ġdis hes . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvis its Amount . text Ġ= Ġmembership . vis its . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( membership . is Actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembership Button . setText ( R . string . actual _ membership ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembership Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembership Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Fragment . on En roll Click ( membership ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Fragment . on Details Click ( membership ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . rest aurants List Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Fragment Ġis ĠMembers hip Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembership Card . style ( R . style . membership Card ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Fragment Ġis ĠNot En rolled Home Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġmembership s . size Ġ- 1 ) Ġ Ġmembership Card . style ( R . style . membership Vertical Last Card ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġmembership Card . style ( R . style . membership Vertical Card ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup , Ġmembership s : ĠList < Membership >): ĠMembers hip ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . view _ membership _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMembers hip ViewHolder ( view , Ġmembership s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTitle ViewHolder ( val Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( membership : ĠMembers hip ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . membership Title . text Ġ= Ġmembership . name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠTitle ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . view _ membership _ title , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTitle ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVIEW TYPE _ TITLE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVIEW TYPE _ MEMBER SHIP Ġ= Ġ 2 ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠMembers hip Adapter Listener Ġ{ ĊĠĠĠ Ġfun Ġon Details Click ( membership : ĠMembers hip ) ĊĠĠĠ Ġfun Ġon En roll Click ( membership : ĠMembers hip ) Ċ } ĊĊ