/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 - 2 0 2 1 ĠThe ĠDec red Ġdevelopers Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġan ĠI SC Ċ Ġ* Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġcom . d cr android . dialog . tx details Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġcom . d cr android . Build Config Ċ import Ġcom . d cr android . R Ċ import Ġcom . d cr android . data . Constants Ċ import Ġcom . d cr android . data . Transaction Ċ import Ġcom . d cr android . dialog . FullScreen Bottom Sheet Dialog Ċ import Ġcom . d cr android . dialog . Info Dialog Ċ import Ġcom . d cr android . extensions . hide Ċ import Ġcom . d cr android . extensions . show Ċ import Ġcom . d cr android . extensions . toggle Visibility Ċ import Ġcom . d cr android . util . Coin Format Ċ import Ġcom . d cr android . util . Sn ackBar Ċ import Ġcom . d cr android . util . Time Utils Ċ import Ġcom . d cr android . util . Utils Ċ import Ġd cr lib wallet . D cr lib wallet Ċ import Ġkotlinx . android . synt hetic . main . transaction _ details .* Ċ import Ġkotlinx . android . synt hetic . main . transaction _ row . view .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . text . DateFormat Symbols Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠTransaction Details Dialog ( val Ġtransaction : ĠTransaction ) Ġ: ĠFull Screen Bottom Sheet Dialog ( null ), ĊĠĠĠ ĠView . OnClickListener , ĠView Tree Observer . On Scroll Changed Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġwallet Ġ= Ġmulti Wallet . wallet With ID ( transaction . wallet ID ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . transaction _ details , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġtx _ details _ icon . setImage Resource ( transaction . icon Resource ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transaction . type Ġ== ĠD cr lib wallet . Tx Type Mixed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount D cr Format Ġ= ĠCoin Format . format ( transaction . mix Denom ination ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Builder Ġ= ĠSp ann able StringBuilder ( amount D cr Format ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . mix Count Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmix Count Ġ= ĠSp ann able String ("\ t Ġx ${ transaction . mix Count }") Ġas ĠSp ann able ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmix Count Ġ= ĠCoin Format . apply Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmix Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). resources . getColor ( R . color . text 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Builder . append ( mix Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ amount . text Ġ= Ġamount Builder ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Amount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . direction Ġ== ĠD cr lib wallet . Tx Direction Sent Ġ&& Ġtransaction . type Ġ== ĠD cr lib wallet . Tx Type Regular ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- transaction . amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ amount . text Ġ= ĠCoin Format . format ( tx Amount , Ġ 0 . 6 2 5 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat ( getString ( R . string . date _ time _ format ), ĠLocale . getDefault ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġsymbols Ġ= ĠDate Format Symbols ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġsymbols . am Pm Strings Ġ= ĠarrayOf ( getString ( R . string . am ), ĠgetString ( R . string . pm )) ĊĠĠĠĠĠĠĠ Ġsdf . date Format Symbols Ġ= Ġsymbols ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= Ġsdf . format ( transaction . timestamp Millis ) ĊĠĠĠĠĠĠĠ Ġtx _ timestamp . text Ġ= Ġtimestamp ĊĊĠĠĠĠĠĠĠ Ġset Confirmation Status () ĊĊĠĠĠĠĠĠĠ Ġre broadcast _ button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġview _ d cr data . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġiv _ info . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtx _ details _ id . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtx _ details _ id . text Ġ= Ġtransaction . hash ĊĠĠĠĠĠĠĠ Ġtx _ details _ type . text Ġ= Ġtransaction . type ĊĠĠĠĠĠĠĠ Ġtx _ details _ fee . text Ġ= ĠgetString ( R . string . x _ d cr , ĠCoin Format . format Dec red ( transaction . fee )) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( transaction . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Type Regular Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( transaction . direction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Direction Sent Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ source _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ source . text Ġ= Ġget Source Account () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ source _ wallet _ badge . text Ġ= Ġwallet . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ source _ wallet _ badge . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ dest _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ dest . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġget Destination Address () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ dest . setOnClickListener ( this @ Transaction Details Dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar _ title . setText ( R . string . sent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Direction Received Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ source _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ source . setText ( R . string . external ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ dest _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ dest _ label . setText ( R . string . to _ account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ dest . text Ġ= Ġget Receive Account () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ dest . setTextColor ( resources . getColor ( R . color . text 1 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ dest _ wallet _ badge . text Ġ= Ġwallet . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ dest _ wallet _ badge . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar _ title . setText ( R . string . received ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtoolbar _ title . setText ( R . string . transfer red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġwhen Ġ( transaction . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Type Ticket Purchase Ġ-> ĠR . string . ticket _ purchase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Type Vote Ġ-> ĠR . string . vote ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Type Rev ocation Ġ-> ĠR . string . rev oked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . Tx Type Mixed Ġ-> ĠR . string . mixed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . tx _ sort _ coin base ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar _ title . setText ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transaction . matches Filter ( D cr lib wallet . Tx Filter St aking )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Ticket Details () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview _ ticket _ spent . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . ticket Sp ent Hash Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġwallet . getTransaction ( transaction . ticket Sp ent Hash ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction Details Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . from ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv _ toggle _ details . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtx _ details _ scroll . view Tree Observer . add On Scroll Changed Listener ( this ) ĊĠĠĠĠĠĠĠ Ġpopulate Input Output () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Tx Or Balance Update Required ( wallet ID : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Tx Or Balance Update Required ( wallet ID ) ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Ticket Details () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Confirmation Status () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Ticket Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġprogress Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . green _ progress _ bar , Ġnull ) ĊĠĠĠĠĠĠĠ Ġvar ĠprogressBar Label Ġ= ĠR . string . sp end able _ in ĊĠĠĠĠĠĠĠ Ġvar ĠprogressBar Max Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar ĠprogressBar Progress Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġvar Ġstatus : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġvote Reward : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdays To Vote : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transaction . type Ġ== ĠD cr lib wallet . Tx Type Rev ocation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview _ ticket _ spent _ row . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . confirm ations Ġ<= ĠBuild Config . Ticket Mat urity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġticket _ details . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . green _ progress _ bar , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Max Ġ= ĠBuild Config . Ticket Mat urity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Progress Ġ= Ġtransaction . confirm ations ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . type Ġ== ĠD cr lib wallet . Tx Type Vote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġticket _ details . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview _ ticket _ spent _ row . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays To Vote Ġ= ĠgetString ( R . string . x _ days , Ġtransaction . days To Vote Or Re voke ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Reward Ġ= ĠgetString ( R . string . x _ d cr , ĠCoin Format . format Dec red ( transaction . vote Reward )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . green _ progress _ bar 2 , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Max Ġ= ĠBuild Config . Ticket Mat urity ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Progress Ġ= Ġtransaction . confirm ations ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . type Ġ== ĠD cr lib wallet . Tx Type Ticket Purchase ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġticket Sp ender : Ġd cr lib wallet . Transaction ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wallet . ticket Has V oted Or Rev oked ( transaction . hash )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġticket Sp ender Ġ= Ġwallet . ticket Sp ender ( transaction . hash ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġticket _ details . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus _ row . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġif Ġ( ticket Sp ender Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ticket Sp ender . type Ġ== ĠD cr lib wallet . Tx Type Vote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . v oted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . rev oked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . matches Filter ( D cr lib wallet . Tx Filter Live )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . live ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . matches Filter ( D cr lib wallet . Tx Filter Imm ature )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . imm ature ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . matches Filter ( D cr lib wallet . Tx Filter Un min ed )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . un min ed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . missed _ expired ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ticket Sp ender Ġ!= Ġnull Ġ&& Ġticket Sp ender . type Ġ== ĠD cr lib wallet . Tx Type Vote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdays To Vote Ġ= ĠgetString ( R . string . x _ days , Ġticket Sp ender . days To Vote Or Re voke ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvote Reward Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . x _ d cr , ĠCoin Format . format Dec red ( ticket Sp ender . vote Reward )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Label Ġ= ĠR . string . mat urity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . blue _ progress _ bar 2 , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Max Ġ= ĠBuild Config . Ticket Mat urity ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Progress Ġ= Ġtransaction . confirm ations ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . matches Filter ( D cr lib wallet . Tx Filter Live ) Ġ&& Ġticket Sp ender Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Label Ġ= ĠR . string . age ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . blue _ progress _ bar , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlive Blocks Ġ= Ġtransaction . confirm ations Ġ- ĠBuild Config . Ticket Mat urity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Progress Ġ= Ġlive Blocks ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Max Ġ= ĠBuild Config . Ticket Expiry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ status . text Ġ= Ġstatus ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( days To Vote Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays _ to _ vote _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ days _ to _ vote . text Ġ= Ġdays To Vote ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( vote Reward Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote _ reward _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ vote _ reward . text Ġ= Ġvote Reward ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( progress Bar Progress Ġ<= ĠprogressBar Max Ġ&& ĠprogressBar Max Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ row . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ label . text Ġ= ĠgetString ( progress Bar Label ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ bar . progress Drawable Ġ= Ġprogress Drawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ bar . max Ġ= ĠprogressBar Max ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ bar . progress Ġ= ĠprogressBar Progress ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ prefix . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"% d %% ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( progress Bar Progress Ġ/ ĠprogressBar Max . toFloat ()) Ġ* Ġ 1 0 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremaining Time Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( progress Bar Max Ġ- ĠprogressBar Progress ) Ġ* ĠBuild Config . Target Time Per Block ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmat urity _ progress _ suffix . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Utils . calculate Time ( remaining Time . to Long (), Ġrequire Context ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Confirmation Status () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspend Un confirmed Funds Ġ= Ġmulti Wallet . read Bool Config Value ForKey ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . S pend Un confirmed Config Key , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . DEF _ SP END _ UN CON FI R MED ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġstatus _ icon . setImage Resource ( transaction . get Confirmation Icon Res ( sp end Un confirmed Funds )) ĊĠĠĠĠĠĠĠ Ġtv _ confirm ations . setTextColor ( require Context (). getColor ( R . color . text 4 )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transaction . confirm ations Ġ>= ĠD cr lib wallet . Default Required Confirm ations Ġ|| Ġspend Un confirmed Funds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ confirm ations . text Ġ= ĠHtml Compat . from Html ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . tx _ details _ confirm ations , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . confirm ations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ block _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ block . text Ġ= Ġtransaction . height . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transaction . confirm ations Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ confirm ations . text Ġ= ĠHtml Compat . from Html ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . tx _ details _ pending _ confirmation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . confirm ations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ block _ row . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ block . text Ġ= Ġtransaction . height . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ confirm ations . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text ( R . string . pending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( context . getColor ( R . color . text 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transaction . height Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre broadcast _ button . show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre broadcast _ button . hide () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġreturns Ġfirst Ġexternal Ġoutput Ġaddress Ġif Ġany ĊĠĠĠ Ġprivate Ġfun Ġget Destination Address (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( output Ġin Ġtransaction . outputs !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( output . account Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoutput . address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Source Account (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( input Ġin Ġtransaction . inputs !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input . account Number Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwallet . account Name ( input . account Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġreturns Ġfirst Ġinternal Ġoutput Ġaddress Ġif Ġany ĊĠĠĠ Ġprivate Ġfun Ġget Receive Account (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( output Ġin Ġtransaction . outputs !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( output . account Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwallet . account Name ( output . account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Input Output () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinputs Ġ= ĠArrayList < DropDown Item >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( input Ġin Ġtransaction . inputs !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġif Ġ( input . account Number Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . account Name ( input . account Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠgetString ( R . string . external ). lowercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . tx _ details _ account , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin Format . format Dec red ( input . amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinput Badge Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input . account Number Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Badge Ġ= Ġwallet . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinputs . add ( DropDown Item ( amount , Ġinput . previous Out point !! , Ġinput Badge )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠInput Output Dropdown ( input _ dropdown _ layout , Ġinputs . to Typed Array (), Ġtop _ bar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoutputs Ġ= ĠArrayList < DropDown Item >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( output Ġin Ġtransaction . outputs !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġif Ġ( output . account Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . account Name ( output . account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠgetString ( R . string . external ). lowercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . tx _ details _ account , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin Format . format Dec red ( output . amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġoutput Badge Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( output . account Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Badge Ġ= Ġwallet . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs . add ( DropDown Item ( amount , Ġoutput . address !! , Ġoutput Badge )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠInput Output Dropdown ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput _ dropdown _ layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs . to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Input Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast Anchor Ġ= Ġtop _ bar ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Scroll Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġtop _ bar . elevation Ġ= Ġif Ġ( tx _ details _ scroll . scroll Y Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension ( R . dim en . app _ bar _ elevation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v !!. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tv _ toggle _ details Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ extra _ details . toggle Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Res Ġ= Ġif Ġ( tx _ extra _ details . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . hide _ details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . show _ details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ toggle _ details . setText ( str Res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tx _ details _ id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . copy To Clipboard ( top _ bar , Ġtx _ details _ id . text . toString (), ĠR . string . tx _ id _ copied ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tx _ details _ dest Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . copy To Clipboard ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop _ bar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx _ details _ dest . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . address _ copy _ text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . iv _ info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠHtml Compat . from Html ( getString ( R . string . tx _ details _ copy _ info ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInfo Dialog ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dialog Title ( getString ( R . string . how _ to _ copy )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( getString ( R . string . got _ it ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . view _ d cr data Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( Build Config . IS _ TEST NET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// test net . d cr data . org / tx /" Ġ+ Ġtransaction . hash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// explorer . d cr data . org / tx /" Ġ+ Ġtransaction . hash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbrowser Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( browser Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . re broadcast _ button Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! multi Wallet . isConnected To Dec red Network ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackBar . show Error ( require Context (), ĠR . string . not _ connected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . publish Un min ed Transactions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackBar . show Text ( require Context (), ĠR . string . re broadcast _ tx _ success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġop Ġ= Ġ" re broadcast Ġtx " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Error Dialog ( require Context (), Ġop Ġ+ Ġ": Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cr lib wallet . log T ( op , Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }