package Ġcom . s yle im an . ging erm oney . ui . activities . main . fragments . accounts . view . accounts _ list . view _ holders Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . s yle im an . ging erm oney . R Ċ import Ġcom . s yle im an . ging erm oney . ui . activities . main . fragments . accounts . dto . Account ListItem Ċ 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 . 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 _ account _ list _ item . view .* Ċ Ċ class ĠAccount ViewHolder ( ĊĠĠĠ Ġparent View : ĠViewGroup Ċ ) Ġ: ĠViewHolder Base < ListItem Events Processor , ĠListItem >( ĊĠĠĠ ĠLayoutInflater . from ( parent View . context ). inflate ( R . layout . fragment _ main _ accounts _ account _ list _ item , Ġparent View , Ġfalse ) Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġevents Processor : ĠListItem Events Processor ? Ġ= Ġ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 ĠAccount ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . name . text Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . amount . text Ġ= ĠMoney Hard C ents Formatter (). format ( it . amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġevents Processor ?. on Account Click ( list Item . db Id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ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 . setOnClickListener ( null ) ĊĠĠĠ Ġ} Ċ }