/* Ċ Ġ* ĠCreated Ġby ĠE du ard ĠZ ay del Ġon Ġ 1 / 4 / 2 0 1 9 Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 9 ĠW aves ĠPlatform . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġcom . waves platform . wallet . v 2 . ui . auth . choose _ account Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġm oxy . presenter . Inject Presenter Ċ import Ġm oxy . presenter . Provide Presenter Ċ import Ġcom . waves platform . sdk . W aves Sdk Ċ import Ġcom . waves platform . sdk . utils . notNull Ċ import Ġcom . waves platform . wallet . App Ċ import Ġcom . waves platform . wallet . R Ċ import Ġcom . waves platform . wallet . v 2 . data . Constants Ċ import Ġcom . waves platform . wallet . v 2 . data . analytics . An alytic Events Ċ import Ġcom . waves platform . wallet . v 2 . data . analytics . analytics Ċ import Ġcom . waves platform . wallet . v 2 . data . helpers . Keeper Intent Helper Ċ import Ġcom . waves platform . wallet . v 2 . data . model . db . user db . Address Book User Db Ċ import Ġcom . waves platform . wallet . v 2 . data . model . local . New Account Dialog Item Ċ import Ġcom . waves platform . wallet . v 2 . ui . auth . choose _ account . edit . Edit AccountName Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . auth . import _ account . Import Account Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . auth . new _ account . New Account Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . auth . pass code . enter . Enter Pass Code Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . base . view . Base Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . home . MainActivity Ċ import Ġcom . waves platform . wallet . v 2 . ui . keeper . Keeper Transaction Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . welcome . Welcome Activity Ċ import Ġcom . waves platform . wallet . v 2 . ui . widget . configuration . options . Options Bottom Sheet Fragment Ċ import Ġcom . waves platform . wallet . v 2 . util .* Ċ import Ġcom . waves platform . wallet . v 2 . data . model . local . widget . Market Widget Settings Ċ import Ġcom . waves platform . wallet . v 2 . data . model . local . widget . Market Widget Update Interval Ċ import Ġcom . waves platform . wallet . v 2 . ui . widget . configuration . Market Widget Configure Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ choose _ account .* Ċ import Ġkotlinx . android . synt hetic . main . content _ empty _ data . view .* Ċ import Ġpers . v ictor . ext . inflate Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠChoose Account Activity Ġ: ĠBase Activity (), ĠChoose Account View , ĠChoose Account OnClickListener Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠChoose Account Presenter ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠChoose Account Presenter Ġ= Ġpresenter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠChoose Account Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Layout Res (): ĠInt Ġ= ĠR . layout . activity _ choose _ account ĊĊĠĠĠ Ġoverride Ġfun Ġask Pass Code () Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġlink Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun Ġon View Ready ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset StatusBar Color ( R . color . basic 5 0 ) ĊĠĠĠĠĠĠĠ Ġset NavigationBar Color ( R . color . basic 5 0 ) ĊĠĠĠĠĠĠĠ Ġsetup Toolbar ( toolbar _ view , Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . choose _ account ), ĠR . drawable . ic _ toolbar _ back _ black ) ĊĊĠĠĠĠĠĠĠ Ġpresenter . check Keeper Intent ( intent ) ĊĊĠĠĠĠĠĠĠ Ġre cycle _ addresses . layout Manager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġre cycle _ addresses . add On Scroll Listener ( object Ġ: Ġandroidx . recyclerview . widget . RecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : Ġandroidx . recyclerview . widget . RecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp bar _ layout . isSelected Ġ= Ġre cycle _ addresses . can Scroll Vert ically (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġadapter . bind To RecyclerView ( recycle _ addresses ) ĊĠĠĠĠĠĠĠ Ġadapter . choose Account OnClickListener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġpresenter . get Addresses () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Success Get Address ( list : ĠArrayList < Address Book User Db >) Ġ{ ĊĠĠĠĠĠĠĠ Ġanalytics . track Event ( An alytic Events . Start Account Counter ( list . size )) ĊĊĠĠĠĠĠĠĠ Ġadapter . set New Data ( list ) ĊĠĠĠĠĠĠĠ Ġadapter . empty View Ġ= Ġget Empty View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Empty View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinf late ( R . layout . content _ empty _ data ) ĊĠĠĠĠĠĠĠ Ġview . text _ empty . text Ġ= ĠgetString ( R . string . choose _ account _ empty _ state ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( item : ĠAddress Book User Db ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġguid Ġ= ĠApp . access Manager . find Guid By ( item . address ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Mon key Test . is Turn ed On ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMon key Test . start If Need () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Activity < Enter Pass Code Activity >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code Ġ= ĠEnter Pass Code Activity . REQUEST _ ENTER _ PASS _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Enter Pass Code Activity . KEY _ INT ENT _ GUID , Ġguid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Enter Pass Code Activity . KEY _ INT ENT _ USE _ BACK _ FOR _ EXIT , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Edit Clicked ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanalytics . track Event ( An alytic Events . Start Account Edit Event ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġadapter . getItem ( position ) Ġas ĠAddress Book User Db ĊĠĠĠĠĠĠĠ Ġlaunch Activity < Edit AccountName Activity >( REQUEST _ EDIT _ ACCOUNT _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ INT ENT _ ITEM _ ADDRESS , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ INT ENT _ ITEM _ POSITION , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonDelete Clicked ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanalytics . track Event ( An alytic Events . Start Account Delete Event ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġadapter . getItem ( position ) Ġas ĠAddress Book User Db ĊĠĠĠĠĠĠĠ Ġval Ġguid Ġ= ĠApp . access Manager . find Guid By ( item . address ) ĊĊĠĠĠĠĠĠĠ Ġval Ġalert Dialog Ġ= ĠAlertDialog . Builder ( this ). create () ĊĠĠĠĠĠĠĠ Ġalert Dialog . setTitle ( getString ( R . string . choose _ account _ delete _ title )) ĊĠĠĠĠĠĠĠ Ġalert Dialog . setMessage ( getString ( R . string . choose _ account _ delete _ msg )) ĊĠĠĠĠĠĠĠ Ġif Ġ( prefs Util . get Guid Value ( guid , ĠP refs Util . KEY _ SKIP _ BACKUP , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . setView ( inflate ( R . layout . content _ delete _ account _ warning _ layout , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert Dialog . set Button ( AlertDialog . BUTTON _ POSITIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . choose _ account _ yes )) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp . access Manager . delete W aves Wallet ( item . address ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . remove ( position ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Success ( R . string . choose _ account _ deleted , ĠR . id . content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert Dialog . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . choose _ account _ cancel )) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert Dialog . show () ĊĠĠĠĠĠĠĠ Ġalert Dialog . make Styled () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ EDIT _ ACCOUNT _ NAME Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠConstants . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġdata ?. get Parcelable Extra < Address Book User Db >( KEY _ INT ENT _ ITEM _ ADDRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġdata ?. getInt Extra ( KEY _ INT ENT _ ITEM _ POSITION , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . notNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( position !! , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . access Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. store Wallet Name ( item !!. address , Ġitem . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnter Pass Code Activity . REQUEST _ ENTER _ PASS _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠConstants . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( W aves Sdk . keeper (). is Keeper Intent ( intent )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Activity < Keeper Transaction Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Activity < MainActivity >( clear Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK eeper Transaction Activity . REQUEST _ KE E PER _ TX _ ACTION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠConstants . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ C ANCE LED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġval Ġke eper Intent Result Ġ= ĠK eeper Intent Helper . parse Intent Result ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( keeper Intent Result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK eeper Intent Helper . exit To D App With Result ( this , Ġke eper Intent Result , ĠW aves Sdk . keeper ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ choose _ account , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ add Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Create Account Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Create Account Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoption Bottom Sheet Fragment Ġ= ĠOptions Bottom Sheet Fragment < New Account Dialog Item >() ĊĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠNew Account Dialog Item . values (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġoption Bottom Sheet Fragment . configure Dialog ( options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . choose _ account _ new _ account _ dialog _ title ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNO _ POSITION ) ĊĊĠĠĠĠĠĠĠ Ġoption Bottom Sheet Fragment . on Option Selected Listener Ġ= Ġobject Ġ: ĠOptions Bottom Sheet Fragment . On Selected Listener < New Account Dialog Item > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Selected ( data : ĠNew Account Dialog Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNew Account Dialog Item . CREATE _ ACCOUNT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Activity < New Account Activity >( request Code Ġ= ĠWelcome Activity . REQUEST _ NEW _ ACCOUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ in _ right , ĠR . anim . null _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNew Account Dialog Item . IMPORT _ ACCOUNT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Activity < Import Account Activity >( Welcome Activity . REQUEST _ IMPORT _ ACC ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ in _ right , ĠR . anim . null _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoption Bottom Sheet Fragment . show ( support FragmentManager , Ġoption Bottom Sheet Fragment :: class . java . simple Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . null _ animation , ĠR . anim . slide _ out _ right ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREQUEST _ EDIT _ ACCOUNT _ NAME Ġ= Ġ 9 9 9 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNO _ POSITION Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ INT ENT _ ITEM _ ADDRESS Ġ= Ġ" intent _ item _ address " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ INT ENT _ ITEM _ POSITION Ġ= Ġ" intent _ item _ position " ĊĠĠĠ Ġ} Ċ } Ċ