package Ġcom . ap top ay ments . sdk . features . card . statements Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ap top ay ments . mobile . data . statements . Statement Month Ċ import Ġcom . ap top ay ments . sdk . R Ċ import Ġcom . ap top ay ments . sdk . core . extension . month Localized Ċ import Ġcom . ap top ay ments . sdk . ui . views . Section Option With Subtitle View Ċ import Ġcom . ap top ay ments . sdk . utils . extensions . setOnClickListener Safe Ċ import Ġkotlinx . android . synt hetic . main . view _ section _ header _ element . view .* Ċ Ċ internal Ġclass ĠStatement ListAdapter ( val Ġdelegate : ĠDelegate ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Statement ListAdapter . Base ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinterface ĠDelegate Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Month T apped ( month : ĠStatement Month ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġlist Ġ= ĠlistOf < Statement ListItem >() ĊĊĠĠĠ Ġfun ĠsetData ( list : ĠList < Statement ListItem >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . list Ġ= Ġlist ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ) Ġ= Ġlist [ position ]. item Type () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatement ListItem . YEAR _ VIEW _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġinflater . inflate ( R . layout . view _ section _ header _ element , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewHolder Year ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatement ListItem . MONTH _ VIEW _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġinflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . view _ section _ option _ subtitle _ element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas Ġ( Section Option With Subtitle View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewHolder Month ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unexpected Ġview Ġtype ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBase ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( list [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġabstract Ġinner Ġclass ĠBase ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġbind ( item : ĠStatement ListItem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder Month ( val Ġview : ĠSection Option With Subtitle View ) Ġ: ĠBase ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠStatement ListItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Statement Ġ= Ġ( item Ġas ĠStatement ListItem . Month Row ). month ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Safe Ġ{ Ġdelegate . on Month T apped ( month Statement ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . option Title Ġ= Ġmonth Statement . to LocalDate (). month Localized () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder Year ( val Ġview : ĠView ) Ġ: ĠBase ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠStatement ListItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . header _ item . title Ġ= Ġ( item Ġas ĠStatement ListItem . Year Row ). year . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ