package Ġio . horizontal systems . bank wallet . modules . balance Ċ Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroidx . core . app . Share Compat Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Simple Item Animator Ċ import Ġio . horizontal systems . bank wallet . R Ċ import Ġio . horizontal systems . bank wallet . core . Base Fragment Ċ import Ġio . horizontal systems . bank wallet . core . utils . Module Field Ċ import Ġio . horizontal systems . bank wallet . modules . balance . views . Sync Error Dialog Ċ import Ġio . horizontal systems . bank wallet . modules . main . MainActivity Ċ import Ġio . horizontal systems . bank wallet . modules . rate chart . Rate Chart Fragment Ċ import Ġio . horizontal systems . bank wallet . modules . receive . Receive Fragment Ċ import Ġio . horizontal systems . bank wallet . modules . settings . manage keys . views . Manage Keys Dialog Ċ import Ġio . horizontal systems . bank wallet . modules . swap . Swap Fragment Ċ import Ġio . horizontal systems . bank wallet . ui . extensions . N pa Linear LayoutManager Ċ import Ġio . horizontal systems . bank wallet . ui . extensions . Selector Dialog Ċ import Ġio . horizontal systems . bank wallet . ui . extensions . Selector Item Ċ import Ġio . horizontal systems . bank wallet . ui . helpers . Text Helper Ċ import Ġio . horizontal systems . core . find Nav Controller Ċ import Ġio . horizontal systems . core . getValue Animator Ċ import Ġio . horizontal systems . core . helpers . Hud Helper Ċ import Ġio . horizontal systems . core . measure Height Ċ import Ġio . horizontal systems . views . helpers . Layout Helper Ċ import Ġkotlinx . android . synt hetic . main . fragment _ balance .* Ċ Ċ class ĠBalance Fragment Ġ: ĠBase Fragment (), ĠBalance Items Adapter . Listener , ĠReceive Fragment . Listener , ĠManage Keys Dialog . Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Balance ViewModel > Ġ{ ĠBalance Module . Factory () Ġ} ĊĠĠĠ Ġprivate Ġval Ġbalance Items Adapter Ġ= ĠBalance Items Adapter ( this ) ĊĠĠĠ Ġprivate Ġvar Ġtotal Balance Tab Height : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġanimation Playback Speed : ĠDouble Ġ= Ġ 1 . 3 ĊĠĠĠ Ġprivate Ġval Ġexpand Duration : ĠLong Ġget () Ġ= Ġ( 3 0 0 L Ġ/ Ġanimation Playback Speed ). to Long () ĊĠĠĠ Ġprivate Ġvar Ġshow Balance MenuItem : ĠMenuItem ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ balance , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġtoolbar . setOn MenuItem ClickListener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu Show Balance Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Show Balance Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Balance MenuItem Ġ= Ġtoolbar . menu . find Item ( R . id . menu Show Balance ) ĊĊĠĠĠĠĠĠĠ Ġtotal Balance Tab Height Ġ= Ġbalance Tab Wrapper . measure Height () ĊĊĠĠĠĠĠĠĠ Ġre cycler Coins . adapter Ġ= Ġbalance Items Adapter ĊĠĠĠĠĠĠĠ Ġre cycler Coins . layout Manager Ġ= ĠN pa Linear LayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġ( recycler Coins . item Animator Ġas ? ĠSimple Item Animator )?. supports Change Animations Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġsort Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Sort Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpull To Refresh . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtotal Balance Wrapper . setOnClickListener Ġ{ ĠviewModel . delegate . on Hide Balance Click () Ġ} ĊĊĠĠĠĠĠĠĠ Ġobserve LiveData () ĊĠĠĠĠĠĠĠ Ġset Swipe Background () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĊĠĠĠĠĠĠĠ Ġre cycler Coins . adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġre cycler Coins . layout Manager Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Swipe Background () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. theme ?. let Ġ{ Ġtheme Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Helper . get Attr ( R . attr . Swipe Refresh BackgroundColor , Ġtheme )?. let Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpull To Refresh . set Progress BackgroundColor Scheme Color ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Helper . get Attr ( R . attr . Color Oz , Ġtheme )?. let Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpull To Refresh . setColor Scheme Colors ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠReceive Fragment Ġlistener ĊĠĠĠ Ġoverride Ġfun Ġshare Receive Address ( address : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShare Compat . Intent Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType (" text / plain ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Chooser () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ ĠManage Keys Dialog ĠListener ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Backup Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Backup Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBalance Adapter Ġlistener ĊĊĠĠĠ Ġoverride Ġfun Ġon Send Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Pay ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Receive ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Swap Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Swap ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Item ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Chart ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sync Error Clicked ( view Item : ĠBalance View Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Sync Error Click ( view Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Add Coin Clicked () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Add Coin Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach Fragment ( child Fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( child Fragment Ġis ĠReceive Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Fragment . set Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( child Fragment Ġis ĠManage Keys Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Fragment . set Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠviewModel . delegate . on Pause () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠLive Data ĊĊĠĠĠ Ġprivate Ġfun Ġobserve LiveData () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . open Receive Dialog . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġwallet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReceive Fragment . newInstance ( wallet ). show ( child FragmentManager , Ġ" Receive Fragment ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Send Dialog . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ? ĠMainActivity )?. open Send ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Swap . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġwallet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . main Fragment _ to _ swap Fragment , Ġbundle Of ( Swap Fragment . from Coin Key Ġto Ġwallet . coin )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . did Refresh Live Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpull To Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Manage Coins Live Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . main Fragment _ to _ manage Wallet s Fragment , Ġnull , Ġnav Options ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . setView Items . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscroll To Top Ġ= Ġbalance Items Adapter . item Count Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbalance Items Adapter . submit List ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scrollTo Top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Coins . layout Manager ?. scrollTo Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . setHeader View Item . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Header View Item ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Sorting Type Dialog Live Event . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġselected Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsort Types Ġ= ĠlistOf ( Balance Sort Type . Name , ĠBalance Sort Type . Value , ĠBalance Sort Type . Percent Grow th ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselector Items Ġ= Ġsort Types . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSelector Item ( getString ( it . getTitle Res ()), Ġit Ġ== Ġselected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelector Dialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newInstance ( selector Items , ĠgetString ( R . string . Balance _ Sort _ Popup Title )) Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Sort Type Change ( sort Types [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( parent FragmentManager , Ġ" balance _ sort _ type _ selector ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . is Sort On . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġvisible Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Button . isVisible Ġ= Ġvisible ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Backup Alert . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġ( coin , Ġpredefined Account ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠgetString ( R . string . Manage Keys _ Delete _ Alert _ Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubtitle Ġ= ĠgetString ( pre defined Account . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= ĠgetString ( R . string . Balance _ Backup _ Alert , ĠgetString ( pre defined Account . title ), Ġcoin . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManage Keys Dialog . show ( child FragmentManager , Ġtitle , Ġsubtitle , Ġdescription ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Backup . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġ( account , Ġcoin Codes String Res ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠBundle ( 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( Module Field . ACCOUNT , Ġaccount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Module Field . ACCOUNT _ CO INS , ĠgetString ( coin Codes String Res )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . main Fragment _ to _ backup Fragment , Ġarguments , Ġnav Options ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Chart Module . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġcoin Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠRate Chart Fragment . prepare Params ( coin . code , Ġcoin . title , Ġcoin . coin Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . main Fragment _ to _ rate Chart Fragment , Ġarguments , Ġnav Options ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . open Email . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġ( email , Ġreport ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Email ( email , Ġreport ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . set Balance Hidden . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġ( hide Balance , Ġanimate ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Balance MenuItem ?. isVisible Ġ= Ġhide Balance ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( animate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠgetValue Animator (! hide Balance , Ġexpand Duration , ĠAccel erate De cel erate Interpolator ()) Ġ{ Ġprogress Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Expand Progress ( balance Tab Wrapper , Ġ 0 , Ġtotal Balance Tab Height , Ġprogress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Expand Progress ( balance Tab Wrapper , Ġ 0 , Ġtotal Balance Tab Height , Ġif Ġ( hide Balance ) Ġ 0 f Ġelse Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Sync Error . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġ( wallet , ĠerrorMessage , Ġsource Change able ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ Ġfragment Activity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSync Error Dialog . show ( fragment Activity , Ġwallet . coin . title , Ġsource Change able , Ġobject Ġ: ĠSync Error Dialog . Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick Retry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . refresh By Wallet ( wallet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick Change Source () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . main Fragment _ to _ privacy Settings Fragment , Ġnull , Ġnav Options ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick Report () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delegate . on Report Click ( errorMessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . network Not Available . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ud Helper . show ErrorMessage ( this . require View (), ĠR . string . Hud _ Text _ No Internet ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Email ( email : ĠString , Ġreport : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND TO ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" mailto :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ EMAIL , ĠarrayOf ( email )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġreport ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Helper . copy Text ( email ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ud Helper . show Success Message ( this . require View (), ĠR . string . Hud _ Text _ EmailAddress Copied ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Expand Progress ( view : ĠView , Ġsmall Height : ĠInt , Ġbig Height : ĠInt , Ġprogress : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . layout Params . height Ġ= Ġ( small Height Ġ+ Ġ( big Height Ġ- Ġsmall Height ) Ġ* Ġprogress ). toInt () ĊĠĠĠĠĠĠĠ Ġview . request Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Header View Item ( header View Item : ĠBalance Header View Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġheader View Item . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbalance Text . text Ġ= Ġx Balance Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġcontext Ġ-> Ġbalance Text . setTextColor ( get Balance TextColor ( context )) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ