package Ġorg . erg op l atform . android . transactions Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . lifecycle . repeat On Lifecycle Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . coroutines . flow . collect Latest Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . erg op l atform . ApiService Manager Ċ import Ġorg . erg op l atform . android . App Database Ċ import Ġorg . erg op l atform . android . Preferences Ċ import Ġorg . erg op l atform . android . R Ċ import Ġorg . erg op l atform . android . databinding . Fragment Address Transactions Binding Ċ import Ġorg . erg op l atform . android . databinding . Fragment Address Transactions Item Binding Ċ import Ġorg . erg op l atform . android . ui . Android String Provider Ċ import Ġorg . erg op l atform . android . ui . navigate Safe Ċ import Ġorg . erg op l atform . android . ui . open Url With Browser Ċ import Ġorg . erg op l atform . android . wallet . addresses . Address Chooser Callback Ċ import Ġorg . erg op l atform . android . wallet . addresses . Choose Address List Dialog Fragment Ċ import Ġorg . erg op l atform . get Explorer Address Url Ċ import Ġorg . erg op l atform . pers istance . Wallet Ċ import Ġorg . erg op l atform . transactions . Transaction List Manager Ċ import Ġorg . erg op l atform . ui logic . transactions . Address Transaction With Tokens Ċ import Ġorg . erg op l atform . wallet . addresses . getAddress Label Ċ Ċ class ĠAddress Transactions Fragment Ġ: ĠFragment (), ĠAddress Chooser Callback Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Address Transactions Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠAddress Transactions Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠAddress Transaction ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠTransactions Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter Finished Loading Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġwallet : ĠWallet ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Address Transactions Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . recyclerview . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġbinding . recyclerview . layout Manager Ġ= ĠLinearLayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . init ( args . wallet Id , Ġargs . der ivation Idx , ĠApp Database . getInstance ( require Context ())) ĊĊĠĠĠĠĠĠĠ ĠviewModel . wallet LiveData . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Shown Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner . repeat On Lifecycle ( Lifecycle . State . STARTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction List Manager . is Downloading . collect Ġ{ Ġis Downloading Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Downloading ) Ġbinding . progress Bar . show () Ġelse Ġbinding . progress Bar . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Downloading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . swipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Shown Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction List Manager . download Progress . collect Ġ{ Ġprogress Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= ĠTransaction List Manager . download Address . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ> Ġ 0 Ġ&& Ġaddress Ġ== ĠviewModel . derived Address ?. public Address ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Progress . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Progress . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . tx _ download _ progress , Ġprogress . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Shown Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Progress . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠClick Ġlistener ĊĠĠĠĠĠĠĠ Ġbinding . address Label . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwallet ?. let Ġ{ Ġwallet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoose Address List Dialog Fragment . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . wallet Config . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( child FragmentManager , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . swipe Refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Refresh When Ne cessary () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Transaction List Manager . is Downloading . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . swipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Refresh When Ne cessary () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . derived Address ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġrequire Context () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction List Manager . download Transaction List For Address ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . public Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Service Manager . get Or Init ( Preferences ( context )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Database . getInstance ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . fragment _ transactions , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( item . itemId Ġ== ĠR . id . menu _ open ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Url With Browser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Explorer Address Url ( viewModel . derived Address !!. public Address ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Address Ch osen ( address Der ivation Idx : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . der ivation Idx Ġ= Ġaddress Der ivation Idx !! ĊĠĠĠĠĠĠĠ Ġstart Refresh When Ne cessary () ĊĠĠĠĠĠĠĠ Ġrefresh Shown Data ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Shown Data ( force Reload : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwallet Ġ= ĠviewModel . wallet LiveData . value ĊĠĠĠĠĠĠĠ Ġbinding . fragment Title . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . title _ transactions ) Ġ+ Ġ" Ġ" Ġ+ Ġ( wallet ?. wallet Config ?. displayName Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġbinding . address Label . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . derived Address ?. getAddress Label ( Android String Provider ( require Context ())) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( force Reload Ġ|| Ġadapter Ġ== Ġnull Ġ|| Ġis RecyclerView At Top ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrecreate Ġadapter , Ġno Ġother Ġway Ġfound Ġfor Ġpaging Ġlibrary Ġto Ġrefresh Ġcompletely ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠTransactions Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recyclerview . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Load State Listener Ġ{ Ġload State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Finished Loading Ġ= Ġload State . append . end Of Pagination Reached ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġno Items Ġ= Ġload State . append . end Of Pagination Reached Ġ&& Ġadapter . item Count Ġ< Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . transactions Empty . visibility Ġ= Ġif Ġ( no Items ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getData Flow ( App Database . getInstance ( require Context ()). transaction Db Provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit Data ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġ// Ġreload , Ġbut Ġonly Ġwhen Ġat Ġtop Ġto Ġprevent Ġrefresh Ġand Ġscroll Ġto Ġtop Ġwhen Ġuser Ġinspect s ĊĠĠĠĠĠĠĠ Ġ// Ġhistory ĊĠĠĠĠĠĠĠ Ġif Ġ( is RecyclerView At Top ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Refresh When Ne cessary () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis RecyclerView At Top () Ġ= ĊĠĠĠĠĠĠĠ Ġ( binding . recyclerview . layout Manager Ġas ĠLinearLayoutManager ). findFirst Visible Item Position () Ġ<= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠTransactions Adapter Ġ: ĊĠĠĠĠĠĠĠ ĠP aging Data Adapter < Address Transaction With Tokens , ĠTransaction ViewHolder >( Transaction Diff Util ()) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĠTransaction ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Address Transactions Item Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠTransaction ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNote Ġthat Ġitem Ġmay Ġbe Ġnull . ĠViewHolder Ġmust Ġsupport Ġbinding Ġa ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnull Ġitem Ġas Ġa Ġplaceholder . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( item , Ġposition Ġ== Ġitem Count Ġ- Ġ 1 Ġ&& Ġadapter Finished Loading ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠTransaction ViewHolder ( private Ġval Ġbinding : ĠFragment Address Transactions Item Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠAddress Transaction With Tokens ?, Ġis Last : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . entry Address . bind Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( binding . root . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġtoken Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Safe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress Transactions Fragment Directions . action Address Transactions Fragment To Token Information Dialog Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Load All . visibility Ġ= Ġif Ġ( is Last ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . desc Load All . visibility Ġ= Ġbinding . button Load All . visibility ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Last ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Load All . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġrequire Context () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction List Manager . start Download All Address Transactions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . derived Address !!. public Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Service Manager . get Or Init ( Preferences ( context )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Database . getInstance ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . entry Address . layout Transaction Info . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Safe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress Transactions Fragment Directions . action Address Transactions Fragment To Transaction Info Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . address Transaction . tx Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . address Transaction . address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTransaction Diff Util Ġ: ĠDiff Util . Item Callback < Address Transaction With Tokens >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠAddress Transaction With Tokens , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠAddress Transaction With Tokens ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġold Item . address Transaction . tx Id Ġ== Ġnew Item . address Transaction . tx Id ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠAddress Transaction With Tokens , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠAddress Transaction With Tokens ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġ( old Item . address Transaction . state Ġ== Ġnew Item . address Transaction . state ) ĊĠĠĠĠĠĠĠ Ġ// Ġevery Ġtime Ġthe Ġaddress Ġtransaction 's Ġcontents Ġchange , Ġa Ġstate Ġchange Ġis Ġalso Ġmade Ġ- ĊĠĠĠĠĠĠĠ Ġ// Ġso Ġit Ġis Ġenough Ġto Ġcheck Ġthis Ġfield Ġto Ġknow Ġif Ġthe Ġitem Ġchanged ĊĊĠĠĠ Ġ} Ċ }