package Ġcom . s yle im an . ging erm oney . ui . activities . main . fragments . accounts . view . accounts _ list . view _ holders Ċ Ċ import Ġandroid . view .* Ċ import Ġandroidx . appcompat . widget . PopupMenu Ċ import Ġcom . s yle im an . ging erm oney . R Ċ import Ġcom . s yle im an . ging erm oney . ui . common . recycler _ view . ListItem Ċ import Ġcom . s yle im an . ging erm oney . ui . activities . main . fragments . accounts . dto . Total ListItem Ċ import Ġcom . s yle im an . ging erm oney . ui . activities . main . fragments . accounts . view _ model . ListItem Events Processor Ċ import Ġcom . s yle im an . ging erm oney . ui . common . format ters . Money Hard C ents Formatter Ċ import Ġcom . s yle im an . ging erm oney . ui . common . recycler _ view . ViewHolder Base Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main _ accounts _ total _ list _ item . view .* Ċ Ċ class ĠTotal ViewHolder ( ĊĠĠĠ Ġparent View : ĠViewGroup Ċ ) Ġ: ĠViewHolder Base < ListItem Events Processor , ĠListItem >( ĊĠĠĠ ĠLayoutInflater . from ( parent View . context ). inflate ( R . layout . fragment _ main _ accounts _ total _ list _ item , Ġparent View , Ġfalse ) Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġevents Processor : ĠListItem Events Processor ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġpopup Menu : ĠPopup Menu ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUI Ġelements Ġmust Ġbe Ġinitialized Ġhere ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġinit ( list Item : ĠListItem , Ġlist Item Events Processor : ĠListItem Events Processor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . events Processor Ġ= Ġlist Item Events Processor ĊĊĠĠĠĠĠĠĠ Ġ( list Item Ġas ĠTotal ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . amount . text Ġ= ĠMoney Hard C ents Formatter (). format ( it . amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠitemView . menu Button . setOnClickListener Ġ{ Ġcreate Menu ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUsed Ġresources Ġof ĠUI Ġelements Ġmust Ġbe Ġreleased Ġhere Ġ( called Ġin ĠList Adapter Base :: on View Re cyc led ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ Ġevents Processor Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ ĠitemView . menu Button . setOnClickListener ( null ) ĊĊĠĠĠĠĠĠĠ Ġpopup Menu ?. setOn MenuItem ClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġpopup Menu ?. dismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Menu ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpopup Menu Ġ= ĠPopup Menu ( view . context , Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater : ĠMenu Inflater Ġ= Ġthis . menu Inflater ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . accounts _ list _ total , Ġthis . menu ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevents Processor ?. on On Currency MenuItem Click ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }