package Ġcom . example . budget _ app . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . budget _ app . R Ċ import Ġcom . example . budget _ app . model . Account DB Ċ import Ġcom . example . budget _ app . presenter . Accounts Presenter Ċ import Ġcom . example . budget _ app . presenter . Database Handler Ċ Ċ class ĠAccounts Adapter ( private Ġval Ġlist : ĠArrayList < List < Any >>, Ġprivate Ġval Ġcontext : ĠContext ): ĊĠĠĠ ĠRecyclerView . Adapter < Accounts Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Views ( list [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġposition : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . accounts _ card , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ): ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġname Ġ= ĠitemView . findViewById < TextView >( R . id . account Name ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġamount Ġ= ĠitemView . findViewById < TextView >( R . id . account Balance ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdelete Button Ġ= ĠitemView . findViewById < Button >( R . id . delete Account Button ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġedit Button Ġ= ĠitemView . findViewById < Button >( R . id . edit Account Button ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Views ( items : ĠList < Any >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . text Ġ= Ġitems [ 0 ]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount . text Ġ= Ġ"$ ${ items [ 1 ] }. 0 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġadapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccounts Presenter Ġ= ĠAccounts Presenter ( context , ĠitemView . root View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠDatabase Handler ( context , ĠAccount DB ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Array Ġ= Ġdb . read All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Array . reverse () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( view !!. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Button . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccounts Presenter . delete Account ( db Array [ position ][ 2 ] Ġas ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Button . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccounts Presenter . edit Account ( db Array [ position ][ 2 ] Ġas ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ