package Ġio . horizontal systems . bank wallet . modules . full transaction info . views Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . style . Underline Span Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . activity . add Callback Ċ import Ġandroidx . core . view . isIn visible Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . commit Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġio . horizontal systems . bank wallet . R Ċ import Ġio . horizontal systems . bank wallet . core . Base Fragment Ċ import Ġio . horizontal systems . bank wallet . entities . Full Transaction Item Ċ import Ġio . horizontal systems . bank wallet . entities . Wallet Ċ import Ġio . horizontal systems . bank wallet . modules . full transaction info . Full Transaction Info ViewModel Ċ import Ġio . horizontal systems . bank wallet . modules . full transaction info . dat apro vider . DataProvider Settings Fragment Ċ import Ġio . horizontal systems . core . helpers . Hud Helper Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . fragment _ full _ transaction _ info .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ full _ transaction _ info . toolbar Ċ import Ġkotlinx . android . synt hetic . main . view _ holder _ full _ transaction .* Ċ import Ġkotlinx . android . synt hetic . main . view _ holder _ full _ transaction _ item .* Ċ import Ġkotlinx . android . synt hetic . main . view _ holder _ full _ transaction _ link .* Ċ import Ġkotlinx . android . synt hetic . main . view _ holder _ full _ transaction _ source .* Ċ Ċ class ĠFull Transaction Info Fragment Ġ: ĠBase Fragment (), ĠFull Transaction Info Error Fragment . Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠFull Transaction Info ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ full _ transaction _ info , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransaction Hash Ġ= Ġarguments ?. getString ( TRANSACTION _ HASH _ KEY ) Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwallet Ġ= Ġarguments ?. get Parcelable < Wallet >( WAL LET _ KEY ) Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtransaction Record Adapter Ġ= ĠSection View Adapter () ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Full Transaction Info ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . init ( transaction Hash , Ġwallet ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar . inflate Menu ( R . menu . full _ transaction _ info _ menu ) ĊĠĠĠĠĠĠĠ Ġtoolbar . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . share Button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . share () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . close Button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( menuItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtransaction Id View . text Ġ= Ġtransaction Hash ĊĊĠĠĠĠĠĠĠ Ġtransaction Id View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Tap Id () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠLive Data ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ ĠviewModel . share Button Visibility . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġvisible Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar ?. menu ?. find Item ( R . id . share Button )?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . reload Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Record Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Transaction Info Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Visible ( recycler Transaction Info ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Loading Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Visible ( progress Loading ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Copied Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ud Helper . show Success Message ( require View (), ĠR . string . Hud _ Text _ Copied ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Link Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . data Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Provider Settings Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġcoin Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠData Provider Settings Fragment . instance ( coin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Custom Animations ( R . anim . from _ right , ĠR . anim . to _ left , ĠR . anim . from _ left , ĠR . anim . to _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . top Fragment Container View , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Error Provider Offline . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġprovider Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetError ( provider Name , ĠR . string . Full Info _ Error _ Provider Offline , ĠR . drawable . dragon _ icon , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Visible ( error Container ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Error Transaction NotFound . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġprovider Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetError ( provider Name , ĠR . string . Full Info _ Error _ Transaction NotFound , ĠR . drawable . ic _ attention , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Visible ( error Container ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Share Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsend Intent : ĠIntent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠIntent . ACTION _ SEND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( send Intent ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġre cycler Transaction Info . has Fixed Size () ĊĠĠĠĠĠĠĠ Ġre cycler Transaction Info . adapter Ġ= Ġtransaction Record Adapter ĊĠĠĠĠĠĠĠ Ġre cycler Transaction Info . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĊĠĠĠĠĠĠĠ Ġtransaction Record Adapter . viewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed Dispatcher ?. add Callback ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠFull Transaction Info Error Fragment ĠListener ĊĠĠĠ Ġ// ĊĠĠĠ Ġoverride Ġfun Ġon Retry () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . retry () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChange Provider () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . change Provider () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetError ( provider Name : ĠString , Ġerror Text : ĠInt , Ġicon : ĠInt , Ġshow Retry : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= ĠgetString ( error Text ) ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠFull Transaction Info Error Fragment . newInstance ( provider Name , ĠerrorMessage , Ġicon , Ġshow Retry ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġchild FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . error Container , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Visible ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( error Container , Ġprogress Loading , Ġre cycler Transaction Info ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . isIn visible Ġ= Ġit Ġ!= Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTRAN SACTION _ HASH _ KEY Ġ= Ġ" transaction _ hash _ key " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠW AL LET _ KEY Ġ= Ġ" wallet _ key " ĊĊĠĠĠĠĠĠĠ Ġfun Ġinstance ( transaction Hash : ĠString , Ġwallet : ĠWallet ): ĠFull Transaction Info Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFull Transaction Info Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle ( 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( TRANSACTION _ HASH _ KEY , Ġtransaction Hash ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( WAL LET _ KEY , Ġwallet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSection View Adapter Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠFull Transaction Info ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġsection View Source Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġsection View Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval Ġsection View Link Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( view Type Ġ== Ġsection View Source ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSection Source ViewHolder ( view . inflate ( R . layout . view _ holder _ full _ transaction _ source , Ġparent , Ġfalse )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( view Type Ġ== Ġsection View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSection ViewHolder ( view . inflate ( R . layout . view _ holder _ full _ transaction , Ġparent , Ġfalse )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSection Link ViewHolder ( view . inflate ( R . layout . view _ holder _ full _ transaction _ link , Ġparent , Ġfalse )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection View Source ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ== Ġitem Count Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection View Link ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection View ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel . delegate . section Count Ġ+ Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Name Ġ= ĠviewModel . delegate . provider Name ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSection Source ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . transaction Source . bind Source Provider ( holder . container View . context . getString ( R . string . Full Info _ Source ), Ġprovider Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . transaction Source . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Tap Provider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSection ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Without Source Ġ= Ġposition Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . get Section ( pos Without Source )?. let Ġ{ Ġsection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . section RecyclerView . has Fixed Size () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . section RecyclerView . is Nested Scrolling Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . section RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( holder . container View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . section RecyclerView . adapter Ġ= ĠSection Item View Adapter ( viewModel , Ġsection . items ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSection Link ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Name ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . transaction Link . isVisible Ġ= ĠviewModel . delegate . can Show Transaction In Provider Site ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( viewModel . delegate . can Show Transaction In Provider Site ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchange Provider Style Ġ= ĠSp ann able String ( provider Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Provider Style . set Span ( Underline Span (), Ġ 0 , Ġchange Provider Style . length , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . transaction Link . text Ġ= Ġchange Provider Style ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . transaction Link . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Tap Resource () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSection Item View Adapter ( val ĠviewModel : ĠFull Transaction Info ViewModel , Ġval Ġitems : ĠList < Full Transaction Item >) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . view _ holder _ full _ transaction _ item , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSection Item ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSection Item ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnot Last Ġ= Ġitems . size Ġ!= Ġposition Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind Transaction ( item , Ġnot Last , Ġholder . section Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Transaction ( item : ĠFull Transaction Item , Ġshow Border : ĠBoolean , Ġview Item : ĠFull Transaction Info Item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġif Ġ( item . title Res Id Ġ!= Ġnull ) Ġview Item . context . getString ( item . title Res Id ) Ġelse Ġitem . title ĊĊĠĠĠĠĠĠĠ Ġview Item . bind ( title , Ġitem . value , Ġitem . icon , Ġitem . dim med , Ġshow Border ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item . click able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Item . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Tap Item ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSection ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ċ class ĠSection Source ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ċ class ĠSection Link ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ċ class ĠSection Item ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ċ