package Ġcom . f riday tech . dex . presentation . transactions . recycler Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . f riday tech . dex . R Ċ import Ġcom . f riday tech . dex . presentation . transactions . model . Transaction View Item Ċ import Ġcom . f riday tech . dex . utils . inflate Ċ import Ġcom . f riday tech . dex . utils . isValid Index Ċ Ċ class ĠTransactions Adapter ( ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠTransaction ViewHolder . OnClickListener , ĊĠĠĠ Ġprivate Ġval Ġload Next Listener : ĠI Load Next Listener Ċ ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Transactions Ġ= ĠArrayList < Transaction View Item >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠTransaction ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent . inflate ( R . layout . item _ transaction ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġm Transactions . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTransaction ViewHolder Ġ-> Ġholder . on Bind ( m Transactions [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ> Ġitem Count Ġ- Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Next Listener . load Next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Transactions ( transactions : ĠList < Transaction View Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Util Ġ= ĠDiff Util . calculate Diff ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransactions Diff Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Transactions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransactions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġm Transactions . clear () ĊĠĠĠĠĠĠĠ Ġm Transactions . addAll ( transactions ) ĊĊĠĠĠĠĠĠĠ Ġdiff Util . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsync Transactions ( indexes : ĠList < Int > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġindexes ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Transactions . isValid Index ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Changed ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠI Load Next Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġload Next () ĊĠĠĠ Ġ} Ċ } Ċ