/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 - 2 0 1 9 ĠThe ĠH df chain Ġdevelopers Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġan ĠI SC Ċ Ġ* Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġcom . hdf android . view . util Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . hdf android . data . Account Ċ import Ġcom . hdf android . data . Constants Ċ import Ġcom . hdf android . dialog . Account Picker Dialog Ċ import Ġcom . hdf android . extensions .* Ċ import Ġcom . hdf android . util . Coin Format Ċ import Ġcom . hdf android . util . Wallet Data Ċ import Ġh df lib wallet . Wallet Ċ import Ġkotlinx . android . synt hetic . main . account _ custom _ spinner . view .* Ċ Ċ class ĠAccount Custom Spinner ( private Ġval Ġfragment Manager : ĠFragment Manager , Ġprivate Ġval Ġspinner Layout : ĠView , Ġprivate Ġval Ġshow Watch Only Wallet s : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġval Ġpicker Title : ĠInt , Ġvar Ġselected Account Changed : Ġ(( Account Custom Spinner ) Ġ-> ĠUnit ? )? Ġ= Ġnull ) Ġ: ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġval Ġcontext Ġ= Ġspinner Layout . context ĊĊĠĠĠ Ġprivate Ġval Ġmulti Wallet Ġ= ĠWallet Data . multi Wallet ĊĠĠĠ Ġvar Ġwallet : ĠWallet ĊĊĠĠĠ Ġvar Ġselected Account : ĠAccount ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . wallet ID Ġ!= Ġwallet . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Ġ= Ġmulti Wallet !!. wallet With ID ( value . wallet ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Layout . spinner _ account _ name . text Ġ= Ġvalue . account Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Layout . spinner _ wallet _ name . text Ġ= Ġwallet . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Layout . spinner _ total _ balance . text Ġ= ĠCoin Format . format ( value . total Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Account Changed ?. let Ġ{ Ġit 1 Ġ-> Ġit 1 ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġdefault Ġselected Ġaccount Ġas Ġ" default " ĊĠĠĠĠĠĠĠ Ġ// Ġaccount Ġfrom Ġthe Ġfirst Ġopened Ġwallet ĊĠĠĠĠĠĠĠ Ġwallet Ġ= Ġif Ġ( show Watch Only Wallet s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Wallet !!. opened Wallet s List ()[ 0 ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Wallet !!. full Coin Wallet s List ()[ 0 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġselected Account Ġ= ĠAccount . from ( wallet . get Account ( Constants . DEF _ ACCOUNT _ NUMBER )) ĊĠĠĠĠĠĠĠ Ġspinner Layout . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisible Accounts Ġ= Ġwallet . wallet Accounts () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop Last While Ġ{ Ġit . account Number Ġ== ĠInt . MAX _ VALUE Ġ}. size ĊĊĠĠĠĠĠĠĠ Ġif Ġ( multi Wallet . opened Wallet s Count () Ġ== Ġ 1 Ġ&& Ġvisible Accounts Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Layout . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Layout . spinner _ dropdown . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAccount Picker Dialog ( picker Title , Ġselected Account !! , Ġshow Watch Only Wallet s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Account Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Account Picker Dialog ĠUnit ĊĠĠĠĠĠĠĠ Ġ}. show ( fragment Manager , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetCurrent Address (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwallet . current Address ( selected Account !!. account Number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget New Address (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwallet . next Address ( selected Account !!. account Number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh Balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġwallet . get Account ( selected Account !!. account Number ) ĊĠĠĠĠĠĠĠ Ġselected Account Ġ= ĠAccount . from ( account ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Visible (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġspinner Layout . visibility Ġ== ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġspinner Layout . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġspinner Layout . hide () ĊĠĠĠ Ġ} Ċ Ċ }