package Ġcash . z . ecc . android . ui . profile Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp anned Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcash . z . ecc . android . R Ċ import Ġcash . z . ecc . android . databinding . Fragment Awesome Binding Ċ import Ġcash . z . ecc . android . di . view model . viewModel Ċ import Ġcash . z . ecc . android . ext . distribute Ċ import Ġcash . z . ecc . android . ext . invisible If Ċ import Ġcash . z . ecc . android . ext . onClick Nav Back Ċ import Ġcash . z . ecc . android . ext . pending Ċ import Ġcash . z . ecc . android . feedback . Report Ċ import Ġcash . z . ecc . android . feedback . Report . Tap . AW ES O ME _ CLOSE Ċ import Ġcash . z . ecc . android . feedback . Report . Tap . AW ES O ME _ SH I ELD Ċ import Ġcash . z . ecc . android . feedback . Report . Tap . COPY _ TRANSP ARENT _ ADDRESS Ċ import Ġcash . z . ecc . android . sdk . db . entity . Pending Transaction Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Cancelled Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Created Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Creating Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Failed Encoding Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Failure Ċ import Ġcash . z . ecc . android . sdk . db . entity . is Submit Success Ċ import Ġcash . z . ecc . android . sdk . ext . convert Z atos hi To Z ec String Ċ import Ġcash . z . ecc . android . util . twig Ċ import Ġcash . z . ecc . android . sdk . type . Wallet Balance Ċ import Ġcash . z . ecc . android . ui . base . Base Fragment Ċ import Ġcash . z . ecc . android . ui . util . Address Part Number Span Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . flow . launch In Ċ import Ġkotlinx . coroutines . flow . on Each Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠAwesome Fragment Ġ: ĠBase Fragment < Fragment Awesome Binding >() Ġ{ ĊĠĠĠ Ġoverride Ġval Ġscreen Ġ= ĠReport . Screen . AW ES O ME ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠProfile ViewModel Ġby ĠviewModel () ĊĊĠĠĠ Ġprivate Ġvar Ġlast Balance : ĠWallet Balance ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġinitialized : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġinf late ( in flater : ĠLayoutInflater ): ĠFragment Awesome Binding Ġ= ĊĠĠĠĠĠĠĠ ĠFragment Awesome Binding . inflate ( in flater ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . hit Area Exit . onClick Nav Back () Ġ{ Ġt apped ( AW ES O ME _ CLOSE ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . hit Area Address . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt apped ( COPY _ TRANSP ARENT _ ADDRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Copy Transparent Address () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . button Action . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Shield Funds Action () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . lott ie Shield ing . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ ĠsetStatus (" Checking Ġbalance ...") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Copy Transparent Address () Ġ{ ĊĠĠĠĠĠĠĠ Ġres umed Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ?. copy Text ( viewModel . get Transparent Address (), Ġ" T - Address ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ(! initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres umed Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Address Loaded ( viewModel . get Transparent Address ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Balance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetStatus ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . text Status . text Ġ= Ġstatus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġappend Status ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . text Status . text Ġ= Ġ"${ binding . text Status . text }$ status " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġupdate Balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġut xo Count Ġ= ĠviewModel . fetch U tx os () ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Transparent Balance (). let Ġ{ Ġbalance Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Balance Updated ( balance , Ġut xo Count ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Address Loaded ( address : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtw ig (" t - address Ġloaded : Ġ Ġ$ address Ġlength : Ġ${ address . length }") Ċ // ĠĠĠĠĠĠĠ Ġq recycler . load ( address ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Quiet Zone Size ( 3 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Correction Level ( Q Recycler . Correction Level . MEDIUM ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . receive Qr Code ) ĊĊĠĠĠĠĠĠĠ Ġaddress . distribute ( 2 ) Ġ{ Ġi , Ġpart Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Address Part ( i , Ġpart ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Address Part ( index : ĠInt , Ġaddress Part : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtw ig (" setting Ġt - address Ġfor Ġpart Ġ$ index ) Ġ$ address Part ") ĊĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġbinding . text Address Part 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġbinding . text Address Part 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unexpected Ġaddress Ġindex Ġ$ index . ĠUnable Ġto Ġsplit Ġthe Ġt - addr Ġinto Ġtwo Ġparts ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠEnsure Ġthat Ġthe Ġaddress Ġis Ġvalid ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġthin Space Ġ= Ġ"\ u 2 0 0 5 " Ġ// Ġ 0 . 2 5 Ġem Ġspace ĊĠĠĠĠĠĠĠ Ġval Ġtext Span Ġ= ĠSp ann able String ("${ index Ġ+ Ġ 1 }$ thin Space $ address Part ") ĊĊĠĠĠĠĠĠĠ Ġtext Span . set Span ( Address Part Number Span (), Ġ 0 , Ġ 2 , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĊĠĠĠĠĠĠĠ Ġaddress . text Ġ= Ġtext Span ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Shield Funds Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . button Action . is Activated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt apped ( AW ES O ME _ SH I ELD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ?. let Ġ{ Ġmain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . authenticate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Shield Ġtransparent Ġfunds ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . bio metric _ backup _ phrase _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Shield Funds () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" No Ġbalance Ġto Ġshield !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġprivate Ġfun Ġon Done Action () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġmain Activity ?. pop Back To ( R . id . nav _ home ) Ċ // ĠĠĠĠĠĠĠ Ġmain Activity ?. safe Navigate ( R . id . action _ nav _ send _ final _ to _ nav _ history ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Done Action () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . set E aster E gg Triggered () ĊĠĠĠĠĠĠĠ Ġmain Activity ?. safe Navigate ( R . id . action _ nav _ awesome _ to _ nav _ history ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Shield Funds () Ġ{ ĊĠĠĠĠĠĠĠ Ġtw ig (" on Shield Funds ") ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Res umed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtw ig (" launch ing Ġshield Ġfunds Ġjob ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . shield Funds (). on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Pending Tx Updated ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. launch In ( lifecycle Scope ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Pending Tx Updated ( tx : ĠPending Transaction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtw ig (" shield ing Ġtransaction Ġupdated : Ġ$ tx ") ĊĠĠĠĠĠĠĠ Ġif Ġ( tx Ġ== Ġnull ) Ġreturn Ġ// ĠTODO : Ġmaybe Ġlog Ġthis ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx . to Ui Model (). let Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Shield ing . invisible If (! model . show Progress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Action . is Activated Ġ= Ġ! model . show Progress Ġ|| Ġmodel . can Cancel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Action . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Action . refresh Drawable State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetStatus ( model . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Status ( model . details . join ToString ("\ n ", Ġ"\ n \ n ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Action . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġmodel . primary ButtonText ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġmodel . primary Action () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . update Balance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres umed Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Balance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" ERROR : Ġerror Ġwhile Ġhandling Ġpending Ġtransaction Ġupdate ! Ġ$ t " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtw ig ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ?. feedback ?. report ( Report . Error . Non Fatal . Tx Update Failed ( t )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ?. feedback ?. report ( t ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Shield Complete ( is Success : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . lott ie Shield ing . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( main Activity , Ġ" Funds Ġsh ielded Ġsuccessfully !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . is Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . text Ġ= Ġ" See ĠDetails " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Status . text Ġ= Ġ" Success !\ n \ n It Ġmay Ġtake Ġa Ġwhile Ġto Ġshow Ġup ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ?. pop Back To ( R . id . nav _ home ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( main Activity , Ġ" Failed Ġto Ġshield Ġfunds Ġ: (", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . text Ġ= Ġ" Shield ĠTr ansparent ĠFund s " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Status . text Ġ= Ġ" Failed !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Balance Updated ( ĊĠĠĠĠĠĠĠ Ġbalance : ĠWallet Balance Ġ= ĠWallet Balance ( 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠ Ġut xo Count : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Balance Ġ= Ġbalance ĊĠĠĠĠĠĠĠ Ġtw ig (" TRANSP ARENT ĠB AL ANCE : Ġ${ balance . available Z atos hi } Ġ/ Ġ${ balance . total Z atos hi }") ĊĠĠĠĠĠĠĠ Ġbinding . text Status . text Ġ= Ġif Ġ( balance . available Z atos hi Ġ> Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . is Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Balance : Ġá Ļ ĩ ${ balance . available Z atos hi . convert Z atos hi To Z ec String ( 8 )}" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . is Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Action . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" No Ġavailable Ġbalance Ġfound " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ut xo Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Status ("\ n \ n Downloaded Ġ$ ut xo Count Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Status ( if Ġ( ut xo Count Ġ== Ġ 1 ) Ġ" transaction !" Ġelse Ġ" transactions !") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbalance . pending . take If Ġ{ Ġit Ġ> Ġ 0 Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Status ("\ n \ n ( á Ļ ĩ ${ it . convert Z atos hi To Z ec String ()} Ġpending Ġconfirmation )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPending Transaction . to Ui Model () Ġ= ĠUi Model (). also Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Cancelled () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . status Ġ= Ġ" Shield ing ĠCancel led !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . update Balance Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary Action Ġ= Ġ{ Ġon Shield Funds Action () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . details . add (" Cancelled !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Submit Success () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . status Ġ= Ġ" Shield ing ĠSuccess !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary ButtonText Ġ= Ġ" Done " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary Action Ġ= Ġ{ Ġon Done Action () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Failure () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . status Ġ= Ġif Ġ( is Failed Encoding ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ getString ( R . string . send _ final _ error _ encoding )}\ n \ n Please Ġnote :\ n Shield ing Ġrequires Ġfunds \ n to Ġhave Ġ 1 0 Ġconfirm ations ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ getString ( R . string . send _ final _ error _ submit ting )}\ n \ n ${ this . errorMessage }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary Action Ġ= Ġ{ Ġon Shield Funds Action () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . status Ġ= Ġ" Shield ing Ġá Ļ ĩ ${ last Balance ?. available Z atos hi . convert Z atos hi To Z ec String () }\ n \ n Please Ġdo Ġnot Ġexit Ġthis Ġscreen !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . show Progress Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Creating ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . can Cancel Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . details . add (" Creating Ġtransaction ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary ButtonText Ġ= ĠgetString ( R . string . send _ final _ button _ primary _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary Action Ġ= Ġ{ Ġon Cancel ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . primary ButtonText Ġ= Ġ" Shield ing ĠFund s ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġmodel . details . add (" Submit ting Ġtransaction ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Cancel ( tx : ĠPending Transaction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġres umed Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . cancel ( tx . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġfields Ġare Ġordered , Ġas Ġthey Ġappear , Ġtop - to - bottom Ġin Ġthe ĠUI Ġbecause Ġthat Ġmakes Ġit Ġeasier Ġto Ġreason Ġabout Ġeach Ġscreen Ġstate ĊĠĠĠ Ġdata Ġclass ĠUi Model ( ĊĠĠĠĠĠĠĠ Ġvar Ġstatus : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġval Ġdetails : ĠMutable Set < String > Ġ= Ġlinked Set Of (), ĊĠĠĠĠĠĠĠ Ġvar Ġshow Progress : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġprimary ButtonText : ĠString Ġ= Ġ" Shield ĠTr ansparent ĠFund s ", ĊĠĠĠĠĠĠĠ Ġvar Ġprimary Action : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠĠĠĠĠ Ġvar Ġcan Cancel : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġupdate Balance : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġ) Ċ } Ċ