/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġg par ap Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// 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 Ġg par ap . apps . shopping _ list . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġg par ap . apps . shopping _ list . R Ċ import Ġg par ap . apps . shopping _ list . data . Category Model Ċ Ċ class ĠCategory Adapter ( private Ġval Ġcallback : ĠCategory Adapter Callback ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Category Adapter . Category ViewHolder >() Ġ{ ĊĠĠĠ Ġvar Ġcategories Ġ= ĠArrayList < Category Model >() ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCategory ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . card view _ categories , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCategory ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCategory ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// display Ġcategory Ġinfo ĊĠĠĠĠĠĠĠ Ġholder . category Name . text Ġ= Ġcategories [ position ]. name . toString () ĊĠĠĠĠĠĠĠ Ġholder . items Count . text Ġ= Ġcontext . resources . getString ( R . string . text _ items _ count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( categories [ position ]. items Count . toString ()) ĊĊĠĠĠĠĠĠĠ Ġ// handle ĠitemView Ġclicks ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Category View ClickListener ( categories [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// handle Ġedit Ġbutton Ġclicks ĊĠĠĠĠĠĠĠ Ġholder . edit Category . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Edit Category Button ClickListener ( categories [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// handle Ġdelete Ġbutton Ġclicks ĊĠĠĠĠĠĠĠ Ġholder . delete Category . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . onDelete Category Button View ClickListener ( categories [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcategories . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCategory ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcategory Name Ġ= ĠitemView . findViewById < TextView >( R . id . text _ view _ category ) !! ĊĠĠĠĠĠĠĠ Ġvar Ġitems Count Ġ= ĠitemView . findViewById < TextView >( R . id . text _ view _ category _ items _ count ) !! ĊĠĠĠĠĠĠĠ Ġval Ġedit Category Ġ= ĠitemView . findViewById < ImageView >( R . id . image _ view _ edit _ category ) !! ĊĠĠĠĠĠĠĠ Ġval Ġdelete Category Ġ= ĠitemView . findViewById < ImageView >( R . id . image _ view _ delete _ category ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCallback Ġfor Ġlistening Ġto ĠRecyclerView 's Ġitem Ġclicks Ġ*/ ĊĠĠĠ Ġinterface ĠCategory Adapter Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Category View ClickListener ( category : ĠCategory Model ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Edit Category Button ClickListener ( category : ĠCategory Model ) ĊĠĠĠĠĠĠĠ Ġfun ĠonDelete Category Button View ClickListener ( category : ĠCategory Model ) ĊĠĠĠ Ġ} Ċ }