package Ġcom . bt spl us plus . f ow allet Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġbit shares .* Ċ import Ġcom . f ow allet . wallet core . b ts . Chain Object Manager Ċ import Ġcom . f ow allet . wallet core . b ts . Wallet Manager Ċ import Ġkotlinx . android . synt hetic . main . activity _ wallet _ manager .* Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠActivity Wallet Manager Ġ: ĠB t sp p Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ data _ array Ġ= Ġmutable ListOf < JSONObject >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ wallet _ manager ) ĊĊĠĠĠĠĠĠĠ Ġset FullScreen () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæŁ¥è¯¢ ĊĠĠĠĠĠĠĠ Ġquery All Account Infos () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġè¿ĶåĽŀ æĮīéĴ® ĊĠĠĠĠĠĠĠ Ġlayout _ back _ from _ page _ of _ wallet _ and _ mut i _ sign . setOnClickListener Ġ{ Ġfinish () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å¯¼åħ¥ æĽ´å¤ļ éĴ± åĮħ çĤ¹åĩ» ĊĠĠĠĠĠĠĠ Ġbutton _ import _ more _ account _ of _ wallet _ and _ mut i _ sign . setOnClickListener Ġ{ Ġon Import More Account Clicked () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å¤ĩ ä»½ éĴ± åĮħ çĤ¹åĩ» ĊĠĠĠĠĠĠĠ Ġbutton _ backup _ wallet _ of _ wallet _ and _ mut i _ sign . setOnClickListener Ġ{ Ġbackup Wallet () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġ å¤ĩ ä»½ æĮīéĴ® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbackup Wallet () Ġ{ ĊĠĠĠĠĠĠĠ Ġgo To ( Activity Wallet Backup :: class . java , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġ çĤ¹åĩ» å¯¼åħ¥ è´¦åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Import More Account Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwallet _ import _ account _ max _ num Ġ= ĠChain Object Manager . shared Chain Object Manager (). getDefault Parameters (). getInt (" wallet _ import _ account _ max _ num ") ĊĠĠĠĠĠĠĠ Ġif Ġ(_ data _ array . size Ġ>= Ġwallet _ import _ account _ max _ num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( R . string . k Wallet Tips Max Import Account . xml string ( this ), Ġwallet _ import _ account _ max _ num . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġguard Wallet Unlock ed ( false ) Ġ{ Ġun locked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unlocked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh UI () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠarrayOf ( R . string . k Wallet Btn Import Multi Signed Account . xml string ( this ), ĠR . string . k Wallet Btn Import Normal Account . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Selector . show ( this , ĠR . string . k Wallet Menu Tips Please Select Import Type . xml string ( this ), Ġlist ) Ġ{ Ġindex : ĠInt , Ġresult : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġon Import Multi Sign Account Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġon Import Normal Account Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġassert ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ äºĭä»¶ Ġ- Ġ çĤ¹åĩ» å¯¼åħ¥ å¤ļ çŃ¾ è´¦åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Import Multi Sign Account Clicked () Ġ{ ĊĠĠĠĠĠĠĠ ĠTemp Manager . shared Temp Manager (). set _ query _ account _ callback Ġ{ Ġlast _ activity , Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast _ activity . goTo ( Activity Wallet Manager :: class . java , Ġtrue , Ġback Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Import Multi Sign Account Select OK ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgo To ( Activity Account Query Base :: class . java , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Import Multi Sign Account Select OK ( account _ item : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġaccount _ item . getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġwallet Mgr Ġ= ĠWallet Manager . shared Wallet Manager () ĊĠĠĠĠĠĠĠ Ġif Ġ( wallet Mgr . getAll Account Data Hash ( true ). has ( account Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Tips D uplicated . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæŁ¥è¯¢ è¦ģ å¯¼åħ¥ çļĦ è´¦åı· ä¿¡æģ¯ ãĢĤ ĊĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( resources . getString ( R . string . k Tips Be Request ing ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmask . show () ĊĠĠĠĠĠĠĠ ĠChain Object Manager . shared Chain Object Manager (). query Full Account Info ( account Name ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull _ data Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġfull _ data . getJSONObject (" account ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Wallet Manager . is Multi Sign Account ( account )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ å¯¼åħ¥ è´¦åı· åĪ° éĴ± åĮħ BIN æĸĩä»¶ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull _ wallet _ bin Ġ= Ġwallet Mgr . wallet Bin Import Account ( account Name , Ġnull ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp CacheManager . shared App CacheManager (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Wallet Bin ( full _ wallet _ bin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Backup Wallet To Web dir ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩįæĸ° è§£ éĶģ ï¼Ī åį³ åĪ·æĸ° è§£ éĶģ åĲİçļĦ è´¦åı· ä¿¡æģ¯ ï¼īãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunlock Infos Ġ= Ġwallet Mgr . re Unlock ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( unlock Infos . getBoolean (" unlock Success ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠæıĲ ç¤º ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Import Success . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩįæĸ° æŁ¥è¯¢ & åĪ·æĸ° çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery All Account Infos () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( R . string . k Wallet Tips Not Multi Sign Account . xml string ( this ), Ġaccount Name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . tip _ network _ error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ äºĭä»¶ Ġ- Ġ çĤ¹åĩ» å¯¼åħ¥ æĻ®éĢļ è´¦åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Import Normal Account Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult _ promise Ġ= ĠPromise () ĊĠĠĠĠĠĠĠ Ġgo To ( Activity Login :: class . java , Ġtrue , Ġargs Ġ= ĠjsonObject from K VS (" check Active Permission ", Ġfalse , Ġ" result _ promise ", Ġresult _ promise )) ĊĠĠĠĠĠĠĠ Ġresult _ promise . then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull Ġ&& Ġit Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ å¯¼åħ¥ æĪĲåĬŁ ï¼Ī åĪ·æĸ° ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery All Account Infos () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġ è´¦åı· CELL çĤ¹åĩ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Account List Clicked ( data : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġguard Wallet Unlock ed ( false ) Ġ{ Ġun locked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unlocked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh UI () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist Ġ= ĠarrayOf ( resources . getString ( R . string . k Wallet Btn Set Current ), Ġresources . getString ( R . string . k Wallet Btn Remove Account )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Selector . show ( this , ĠR . string . k Wallet Mem u Tips Please Select Cell Action . xml string ( this ), Ġlist ) Ġ{ Ġindex : ĠInt , Ġresult : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġon Set Current Account Clicked ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġon Remove Account Clicked ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġassert ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġè®¾ç½® å½ĵåīį è´¦åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Set Current Account Clicked ( data : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . getBoolean (" current ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Tips Switch Current Account Done . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġdata . getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( resources . getString ( R . string . k Tips Be Request ing ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmask . show () ĊĠĠĠĠĠĠĠ ĠChain Object Manager . shared Chain Object Manager (). query Full Account Info ( account Name ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull _ data Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġè®¾ç½® å½ĵåīį è´¦åı· ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull _ wallet _ bin Ġ= ĠWallet Manager . shared Wallet Manager (). wallet Bin Import Account ( account Name , Ġnull ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp CacheManager . shared App CacheManager (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Wallet Bin ( full _ wallet _ bin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Backup Wallet To Web dir ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Wallet Current Account ( account Name , Ġfull _ data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩįæĸ° è§£ éĶģ ï¼Ī åį³ åĪ·æĸ° è§£ éĶģ åĲİçļĦ è´¦åı· ä¿¡æģ¯ ï¼īãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunlock Infos Ġ= ĠWallet Manager . shared Wallet Manager (). re Unlock ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( unlock Infos . getBoolean (" unlock Success ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠæıĲ ç¤º ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Tips Switch Current Account Done . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh UI () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . tip _ network _ error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- ĠåĪłéĻ¤ è´¦åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Remove Account Clicked ( data : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwallet Mgr Ġ= ĠWallet Manager . shared Wallet Manager () ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åį³ å°Ĩ ç§»éĻ¤ çļĦ è´¦åı· ĊĠĠĠĠĠĠĠ Ġval Ġaccount _ data _ hash Ġ= Ġwallet Mgr . getAll Account Data Hash ( true ) ĊĠĠĠĠĠĠĠ Ġif Ġ( account _ data _ hash . length () Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Tips Remove Keep One . xml string ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġdata . getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Data Ġ= Ġaccount _ data _ hash . getJSONObject ( account Name ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġå¦Ĥæŀľ åĪłéĻ¤ å½ĵåīį è´¦åı· ï¼Ī éĤ£ä¹Ī åĪłéĻ¤ ä¹ĭåĲİ éľĢè¦ģ è®¾ç½® æĸ°çļĦ å½ĵåīį è´¦åı· ï¼ī ĊĠĠĠĠĠĠĠ Ġvar Ġnew Current Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġdelete Current Account Ġ= Ġwallet Mgr . get Wallet AccountName () !! Ġ== Ġaccount Name ĊĠĠĠĠĠĠĠ Ġif Ġ( delete Current Account ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġ_ data _ array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġitem . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġaccount Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Current Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ è¦ģ ç§»éĻ¤ çļĦ è´¦åı· çļĦæīĢæľī åħ¬ éĴ¥ ĊĠĠĠĠĠĠĠ Ġval Ġremove _ account _ pub keys Ġ= ĠWallet Manager . getAll PublicKey From Account Data ( account Data , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åħ¶ä»ĸ è´¦åı· çļĦæīĢæľī åħ¬ éĴ¥ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġaccount _ data _ hash . values (). forEach < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġit !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( account . getString (" name ") Ġ!= Ġaccount Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWallet Manager . getAll PublicKey From Account Data ( account , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ çŃ Ľ éĢī æľĢç»Ī è¦ģ ç§»éĻ¤ çļĦ åħ¬ éĴ¥ ï¼ļ remove _ account _ pub keys Ġ- Ġresult ĊĠĠĠĠĠĠĠ Ġvar Ġwill _ delete _ private key Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġfinal _ remove _ pubkey Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠ Ġremove _ account _ pub keys . keys (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result . has ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal _ remove _ pubkey . put ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wallet Mgr . have PrivateKey ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwill _ delete _ private key Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠåĪłéĻ¤ ĊĠĠĠĠĠĠĠ Ġif Ġ( will _ delete _ private key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġal er Show Message Confirm ( resources . getString ( R . string . k W arm Tips ), ĠR . string . k Wallet Tips W arm Message . xml string ( this )). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull Ġ&& Ġit Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Account Core ( account Name , Ġfinal _ remove _ pubkey , Ġnew Current Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Account Core ( account Name , Ġfinal _ remove _ pubkey , Ġnew Current Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Account Core ( account Name : ĠString , Ġpub key List : ĠJSONArray , Ġnew Current Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new Current Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( resources . getString ( R . string . k Tips Be Request ing ), Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChain Object Manager . shared Chain Object Manager (). query Full Account Info ( new Current Name ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull _ data Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Account Core 2 ( account Name , Ġpub key List , Ġfull _ data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . tip _ network _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Account Core 2 ( account Name , Ġpub key List , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Account Core 2 ( account Name : ĠString , Ġpub key List : ĠJSONArray , Ġnew Full Account Data : ĠJSONObject ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ ç§»éĻ¤ è´¦åı· æł¸å¿ĥ ĊĠĠĠĠĠĠĠ Ġval Ġfull _ wallet _ bin Ġ= ĠWallet Manager . shared Wallet Manager (). wallet Bin Remove Account ( account Name , Ġpub key List ) !! ĊĠĠĠĠĠĠĠ ĠApp CacheManager . shared App CacheManager (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Wallet Bin ( full _ wallet _ bin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauto Backup Wallet To Web dir ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġå¦Ĥæŀľ åĪłéĻ¤ äºĨ å½ĵåīį è´¦åı· ï¼Į éľĢè¦ģ éĩįæĸ° è®¾ç½® ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Full Account Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Wallet Current Account ( new Full Account Data . getJSONObject (" account "). getString (" name "), Ġnew Full Account Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩįæĸ° è§£ éĶģ ï¼Ī åį³ åĪ·æĸ° è§£ éĶģ åĲİçļĦ è´¦åı· ä¿¡æģ¯ ï¼īãĢĤ ĊĠĠĠĠĠĠĠ Ġval Ġunlock Infos Ġ= ĠWallet Manager . shared Wallet Manager (). re Unlock ( this ) ĊĠĠĠĠĠĠĠ Ġassert ( unlock Infos . getBoolean (" unlock Success ")) ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæıĲ ç¤º ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġshow Toast ( R . string . k Wallet Tips Remove Account Done . xml string ( this )) ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩįæĸ° æŁ¥è¯¢ & åĪ·æĸ° çķĮéĿ¢ ĊĠĠĠĠĠĠĠ Ġquery All Account Infos () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġæı ı ç»ĺ æīĢæľī è´¦åı· çļĦ åĪĹè¡¨ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrefresh Draw All Cell ( data _ array : ĠMutable List < JSONObject >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ parent Ġ= Ġlayout _ account _ list _ of _ wallet _ and _ mut i _ sign ĊĠĠĠĠĠĠĠ Ġlayout _ parent . removeAll Views () ĊĠĠĠĠĠĠĠ Ġdata _ array . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Cell ( layout _ parent , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Cell ( layout _ parent : ĠLinearLayout , Ġdata : ĠJSONObject ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġis _ locked Ġ= Ġdata . getBoolean (" locked ") ĊĠĠĠĠĠĠĠ Ġval Ġis _ current Ġ= Ġdata . getBoolean (" current ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlayout _ list _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . MATCH _ PARENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġlayout _ list _ params . set Margins ( 0 , Ġ 8 . dp , Ġ 0 , Ġ 1 0 . dp ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ list Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠ Ġlayout _ list . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġlayout _ list . layout Params Ġ= Ġlayout _ list _ params ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å·¦ ä¾§ Ġwrap ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ left _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT , Ġ 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ left Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠ Ġlayout _ left . orientation Ġ= ĠLinearLayout . VERTICAL ĊĠĠĠĠĠĠĠ Ġlayout _ left . layout Params Ġ= Ġlayout _ left _ params ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is _ locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ params . gravity Ġ= ĠGr avity . CENTER _ VERTICAL ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsmall _ font _ size Ġ= Ġ 1 0 . 0 f ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å·¦ ä¾§ Ġ ç¬¬ä¸Ģ è¡Į ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ left _ line 1 _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT , Ġ 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ left _ line 1 Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠ Ġlayout _ left _ line 1 . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġlayout _ left _ line 1 . layout Params Ġ= Ġlayout _ left _ line 1 _ params ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġaccount Ġname ĊĠĠĠĠĠĠĠ Ġval Ġtv _ account _ name Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠ Ġtv _ account _ name . text Ġ= Ġdata . getString (" name ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is _ current ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ account _ name . paint . is Fake Bold Text Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ account _ name . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 1 9 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ account _ name . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 1 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġcurrent Ġname Ġflag ĊĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ current _ account _ layout _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account _ layout _ params . set Margins ( 4 . dp , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account _ layout _ params . gravity Ġ= ĠGr avity . CENTER _ VERTICAL ĊĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ current _ account Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . text Ġ= Ġresources . getString ( R . string . k Wallet Cell Current Account ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġsmall _ font _ size ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . set Padding ( 4 . dp , Ġ 1 . dp , Ġ 4 . dp , Ġ 1 . dp ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . background Ġ= Ġresources . get Drawable ( R . drawable . border _ text _ view ) ĊĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . layout Params Ġ= Ġtv _ tag _ of _ current _ account _ layout _ params ĊĠĠĠĠĠĠĠ Ġif Ġ( data . getBoolean (" current ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ account _ name . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ account _ name . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Normal )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ current _ account . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlayout _ left _ line 1 . addView ( tv _ account _ name ) ĊĠĠĠĠĠĠĠ Ġlayout _ left _ line 1 . addView ( tv _ tag _ of _ current _ account ) ĊĠĠĠĠĠĠĠ Ġlayout _ left . addView ( layout _ left _ line 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ å° ļ æľª éĶģ å®ļæĹ¶ æīį æĺ¾ç¤º ç¬¬äºĮ è¡Į æĿĥéĻĲ ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is _ locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å·¦ ä¾§ Ġ ç¬¬äºĮ è¡Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout _ left _ line 2 _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT , Ġ 5 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 _ params . set Margins ( 0 , Ġ 1 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout _ left _ line 2 Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 . layout Params Ġ= Ġlayout _ left _ line 2 _ params ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è´¦åı· æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ account _ privilege _ layout _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege _ layout _ params . set Margins ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ account _ privilege Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . text Ġ= Ġresources . getString ( R . string . k Wallet Cell Permission Owner ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġsmall _ font _ size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . set Padding ( 2 . dp , Ġ 0 , Ġ 2 . dp , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . layout Params Ġ= Ġtv _ tag _ of _ account _ privilege _ layout _ params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 . addView ( tv _ tag _ of _ account _ privilege ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( data . getInt (" owner _ status ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ NO _ PERMISSION . value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Gray )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . background Ġ= Ġresources . get Drawable ( R . drawable . text view _ border _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ PAR TIAL _ PERMISSION . value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . background Ġ= Ġresources . get Drawable ( R . drawable . text view _ border _ highlight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ EN OU GH _ PERMISSION . value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ FULL _ PERMISSION . value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ account _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èµĦ éĩĳ æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ capital _ privilege _ layout _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege _ layout _ params . set Margins ( 8 . dp , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ capital _ privilege Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . text Ġ= Ġresources . getString ( R . string . k Wallet Cell Permission Active ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġsmall _ font _ size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . set Padding ( 2 . dp , Ġ 0 , Ġ 2 . dp , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . layout Params Ġ= Ġtv _ tag _ of _ capital _ privilege _ layout _ params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 . addView ( tv _ tag _ of _ capital _ privilege ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( data . getInt (" active _ status ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ NO _ PERMISSION . value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Gray )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . background Ġ= Ġresources . get Drawable ( R . drawable . text view _ border _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ PAR TIAL _ PERMISSION . value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . background Ġ= Ġresources . get Drawable ( R . drawable . text view _ border _ highlight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ EN OU GH _ PERMISSION . value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Account Permission Status . E AP S _ FULL _ PERMISSION . value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ capital _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å¤ĩ æ³¨ æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ remark _ privilege _ layout _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , ĠLinearLayout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege _ layout _ params . set Margins ( 8 . dp , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ tag _ of _ remark _ privilege Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . text Ġ= Ġresources . getString ( R . string . k Wallet Cell Permission Memo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . setText Size ( Typed Value . COMPLEX _ UNIT _ DIP , Ġsmall _ font _ size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . set Padding ( 2 . dp , Ġ 0 , Ġ 2 . dp , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . layout Params Ġ= Ġtv _ tag _ of _ remark _ privilege _ layout _ params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left _ line 2 . addView ( tv _ tag _ of _ remark _ privilege ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . getBoolean (" have Memo Permission ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Gray )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ tag _ of _ remark _ privilege . background Ġ= Ġresources . get Drawable ( R . drawable . text view _ border _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ left . addView ( layout _ left _ line 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġright _ height Ġ= Ġ 4 0 . dp ĊĠĠĠĠĠĠĠ Ġif Ġ( is _ locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright _ height Ġ= ĠL LAYOUT _ WAR P ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åı³ ä¾§ Ġwrap Ġ Ġ ç® Ń å¤´ ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ right _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . WRAP _ CONTENT , Ġright _ height , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout _ right Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠ Ġlayout _ right . gravity Ġ= ĠGr avity . CENTER _ VERTICAL Ġor ĠGr avity . RIGHT ĊĠĠĠĠĠĠĠ Ġlayout _ right _ params . gravity Ġ= ĠGr avity . RIGHT ĊĠĠĠĠĠĠĠ Ġlayout _ right . orientation Ġ= ĠLinearLayout . VERTICAL ĊĠĠĠĠĠĠĠ Ġlayout _ right . layout Params Ġ= Ġlayout _ right _ params ĊĊĠĠĠĠĠĠĠ Ġval Ġiv _ right _ arrow Ġ= ĠImageView ( this ) ĊĠĠĠĠĠĠĠ Ġiv _ right _ arrow . setImage Drawable ( resources . get Drawable ( R . drawable . ic _ btn _ right _ arrow )) ĊĠĠĠĠĠĠĠ Ġiv _ right _ arrow . scale Type Ġ= ĠImageView . Scale Type . FIT _ END ĊĠĠĠĠĠĠĠ Ġlayout _ right . addView ( iv _ right _ arrow ) ĊĊĠĠĠĠĠĠĠ Ġlayout _ list . addView ( layout _ left ) ĊĠĠĠĠĠĠĠ Ġlayout _ list . addView ( layout _ right ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çĤ¹åĩ» äºĭä»¶ ĊĠĠĠĠĠĠĠ Ġlayout _ list . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Account List Clicked ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çº¿ ĊĠĠĠĠĠĠĠ Ġval Ġlv _ line Ġ= ĠView ( this ) ĊĠĠĠĠĠĠĠ Ġvar Ġlayout _ line _ params Ġ= ĠLinearLayout . LayoutParams ( LinearLayout . LayoutParams . MATCH _ PARENT , Ġto Dp ( 1 . 0 f )) ĊĠĠĠĠĠĠĠ Ġlv _ line . set BackgroundColor ( resources . getColor ( R . color . theme 0 1 _ bottom Line Color )) ĊĠĠĠĠĠĠĠ Ġlv _ line . layout Params Ġ= Ġlayout _ line _ params ĊĊĠĠĠĠĠĠĠ Ġlayout _ parent . addView ( layout _ list ) ĊĠĠĠĠĠĠĠ Ġlayout _ parent . addView ( lv _ line ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĪ·æĸ° UI ï¼Ī ä¸į éĩįæĸ° æŁ¥è¯¢ ï¼ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrefresh UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ ary Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠ Ġ_ data _ array . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ary . put ( it . getJSONObject (" raw _ json ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġon Query All Account Infos Response ( ary ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Query All Account Infos Response ( data _ array : ĠJSONArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ æľ¬åľ° éĴ± åĮħ æĸĩä»¶ å¿« æį · æŁ¥è¯¢ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ ĠApp CacheManager . shared App CacheManager (). set Wallet Account DataList ( data _ array ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĽ´æĸ° åĪĹè¡¨ æķ°æį® ĊĠĠĠĠĠĠĠ Ġ_ data _ array . clear () ĊĠĠĠĠĠĠĠ Ġval Ġwallet Mgr Ġ= ĠWallet Manager . shared Wallet Manager () ĊĠĠĠĠĠĠĠ Ġval Ġis Locked Ġ= Ġwallet Mgr . is Locked () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ac cout Name Ġ= Ġwallet Mgr . get Wallet AccountName () !! ĊĠĠĠĠĠĠĠ Ġdata _ array . forEach < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount _ info Ġ= Ġit !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġaccount _ info . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Current Ġ= Ġname Ġ== Ġcurrent Ac cout Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĶģ å®ļ çĬ¶æĢģ æ²¡ æ³ķ èİ·åıĸ æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data _ array . add ( jsonObject from K VS (" name ", Ġname , Ġ" current ", Ġis Current , Ġ" raw _ json ", Ġaccount _ info , Ġ" locked ", Ġis Locked )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ è§£ éĶģ çĬ¶æĢģ ä¸ĭ åĪ¤æĸŃ åĲĦç§į æĿĥéĻĲ åĪ¤æĸŃ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġowner Ġ= Ġaccount _ info . getJSONObject (" owner ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactive Ġ= Ġaccount _ info . getJSONObject (" active ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmemo _ key Ġ= Ġaccount _ info . getJSONObject (" options "). opt String (" memo _ key ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġowner _ status Ġ= Ġwallet Mgr . calc Permission Status ( owner ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactive _ status Ġ= Ġwallet Mgr . calc Permission Status ( active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhave Memo Permission Ġ= Ġmemo _ key Ġ!= Ġ"" Ġ&& Ġwallet Mgr . have PrivateKey ( memo _ key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data _ array . add ( jsonObject from K VS (" name ", Ġname , Ġ" current ", Ġis Current , Ġ" raw _ json ", Ġaccount _ info , Ġ" locked ", Ġis Locked , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" owner _ status ", Ġowner _ status . value , Ġ" active _ status ", Ġactive _ status . value , Ġ" have Memo Permission ", Ġhave Memo Permission )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ æĮīçħ§ Ġcurrent Ġ åŃĹæ®µ éĻį åºı æİĴ åĪĹ ãĢĤ åį³ ï¼ļ å½ĵåīį è´¦åı· æİĴ åĪĹ åľ¨ æľĢ åīį ĊĠĠĠĠĠĠĠ Ġ_ data _ array . sortBy Descending Ġ{ Ġit . getBoolean (" current ") Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh Draw All Cell (_ data _ array ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩįæĸ° æŁ¥è¯¢ & åĪ·æĸ° UI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġquery All Account Infos () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount _ name list Ġ= ĠWallet Manager . shared Wallet Manager (). get Wallet AccountName List () ĊĠĠĠĠĠĠĠ Ġassert ( account _ name list . length () Ġ> Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( resources . getString ( R . string . k Tips Be Request ing ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmask . show () ĊĊĠĠĠĠĠĠĠ Ġval Ġconn Ġ= ĠGraph ene ConnectionManager . shared Graph ene ConnectionManager (). any _ connection () ĊĠĠĠĠĠĠĠ Ġconn . async _ exec _ db (" lookup _ account _ names ", Ġjson Array from ( account _ name list )). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata _ array Ġ= Ġit Ġas ĠJSONArray ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChain Object Manager . shared Chain Object Manager (). update Graph ene Object Cache ( data _ array ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Query All Account Infos Response ( data _ array ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . tip _ network _ error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ