package Ġcom . a ol ink . wallet . pages . wallet Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . a ol ink . wallet . service . wallet ac ount . Wallet Account Manager Ċ import Ġcom . a ol ink . wallet . utils . Event Util Ċ import Ġcom . a ol ink . wallet . utils . Shared Pref Kt Ċ import Ġcom . a ol ink . wallet . utils . check Fast Click Ċ import Ġcom . a ol ink . wallet . utils . show Failed Tip Ċ import Ġcom . a ol ink . wallet . widgets . Grid Space Item Decoration Ċ import Ġcom . a ol ink . wallet . R Ċ import Ġcom . a ol ink . wallet . base . Base Fragment Ċ import Ġcom . a ol ink . wallet . db . Database Ċ import Ġcom . a ol ink . wallet . db . Wallet Ċ import Ġcom . a ol ink . wallet . db . Wallet Local Type Ċ import Ġcom . a ol ink . wallet . pages . main . MainActivity Ċ import Ġcom . a ol ink . wallet . pages . wallet . adapter . Wallet Mnemonic Adapter Ċ import Ġcom . a ol ink . wallet . pages . wallet . type . Wallet Mnemonic Item Ċ import Ġcom . a ol ink . wallet . pages . wallet . utils . check Wallet Exists By PrivateKey Ċ import Ġcom . a ol ink . wallet . pages . wallet . utils . getRandom Mn emon ics Ċ import Ġcom . a ol ink . wallet . pages . wallet . utils . to Mnemonic Ċ import Ġcom . a ol ink . wallet . utils . Constants Ċ import Ġcom . qm uite am . qm ui . util . QM UID is play Helper Ċ import Ġkotlinx . android . synt hetic . main . fragment _ wallet _ create _ by _ mn emonic _ confirm .* Ċ import Ġkotlinx . android . synt hetic . main . include _ secondary _ button .* Ċ import Ġkotlinx . android . synt hetic . main . include _ top bar .* Ċ Ċ /** Ċ Ġ* Ġ@ FileName ĠWallet Create By Mnemonic Confirm Fragment Ċ Ġ* Ġ@ Description Ċ Ġ* Ġ@ Author Ġd ing yan Ċ Ġ* Ġ@ Date Ġ 2 0 2 0 / 1 0 / 1 4 Ġ 1 : 3 2 ĠPM Ċ Ġ*/ Ċ class ĠWallet Create By Mnemonic Confirm Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet PrivateKey : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet Ke yst ore : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet Address : ĠString ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet Name : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet Password : ĠString ĊĊĠĠĠ Ġprivate Ġvar Ġm Wallet Local Type Ġ= ĠWallet Local Type . LOCAL _ TYPE _ PO K ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åİŁ åĬ© è®° è¯į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Wallet Mnemonic : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æīĵ ä¹± é¡ºåºı åĲİçļĦ åĬ© è®° è¯į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Random Mn emon ics : ĠArrayList < Wallet Mnemonic Item > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æīĵ ä¹± é¡ºåºı åĲİçļĦ åĬ© è®° è¯į éĢĤ éħį åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Random Mnemonic Adapter : ĠWallet Mnemonic Adapter ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢī ä¸ŃçļĦ åĬ© è®° è¯į åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Selected Mn emon ics : ĠArrayList < Wallet Mnemonic Item > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢī ä¸ŃçļĦ åĬ© è®° è¯į éĢĤ éħį åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Selected Mnemonic Adapter : ĠWallet Mnemonic Adapter ĊĊĠĠĠ Ġprivate Ġval ĠW AL LET _ M NE MON IC _ WORDS _ SIZE Ġ= Ġ 1 2 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( wallet Local Type : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprivateKey : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeystore : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword : ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠWallet Create By Mnemonic Confirm Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠWallet Create By Mnemonic Confirm Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Int ( Constants . PARAM _ WAL LET _ LOCAL _ TYPE , Ġwallet Local Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ WAL LET _ M NE MON IC , Ġmnemonic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ WAL LET _ PRIVATE _ KEY , ĠprivateKey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ WAL LET _ KEY _ STORE , Ġkeystore ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ WAL LET _ ADDRESS , Ġaddress ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ NAME , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . PARAM _ PASSWORD , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ui (): ĠInt Ġ= ĠR . layout . fragment _ wallet _ create _ by _ mn emonic _ confirm ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Data () ĊĊĠĠĠĠĠĠĠ Ġinit Argument Data () ĊĠĠĠĠĠĠĠ Ġinit Random Mnemonic Words () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Argument Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Wallet Local Type Ġ= Ġarguments !!. getInt ( Constants . PARAM _ WAL LET _ LOCAL _ TYPE ) ĊĠĠĠĠĠĠĠ Ġm Wallet Mnemonic Ġ= Ġarguments !!. getString ( Constants . PARAM _ WAL LET _ M NE MON IC ) !! ĊĠĠĠĠĠĠĠ Ġm Wallet PrivateKey Ġ= Ġarguments !!. getString ( Constants . PARAM _ WAL LET _ PRIVATE _ KEY ) !! ĊĠĠĠĠĠĠĠ Ġm Wallet Ke yst ore Ġ= Ġarguments !!. getString ( Constants . PARAM _ WAL LET _ KEY _ STORE ) !! ĊĠĠĠĠĠĠĠ Ġm Wallet Address Ġ= Ġarguments !!. getString ( Constants . PARAM _ WAL LET _ ADDRESS ) !! ĊĊĠĠĠĠĠĠĠ Ġm Wallet Name Ġ= Ġarguments !!. getString ( Constants . PARAM _ NAME ) !! ĊĠĠĠĠĠĠĠ Ġm Wallet Password Ġ= Ġarguments !!. getString ( Constants . PARAM _ PASSWORD ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Random Mnemonic Words () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Random Mn emon ics . addAll ( m Wallet Mnemonic . getRandom Mn emon ics ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init View () ĊĊĠĠĠĠĠĠĠ Ġinit Top Bar () ĊĠĠĠĠĠĠĠ Ġinit Button () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Top Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtop bar ?. set Top Bar ( title Ġ= ĠgetString ( R . string . title _ verify _ mn emonic ), Ġis Back Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġsecondary _ btn _ content _ tv ?. text Ġ= ĠgetString ( R . string . next _ btn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠRecyclerView ?. init () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspan Count Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġthis ?. layout Manager Ġ= ĠGrid LayoutManager ( mContext , Ġspan Count ) ĊĠĠĠĠĠĠĠ Ġthis ?. addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid Space Item Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Count Ġ= Ġspan Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Space Ġ= ĠQ M UID is play Helper . dp 2 px ( mContext , Ġ 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Space Ġ= ĠQ M UID is play Helper . dp 2 px ( mContext , Ġ 1 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Edge Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Notice Text Visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotice _ tv ?. visibility Ġ= Ġif Ġ( m Selected Mn emon ics . isEmpty ()) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Listener () ĊĊĠĠĠĠĠĠĠ Ġsecondary _ btn ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . check Fast Click Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mn emon ics . size Ġ< ĠW AL LET _ M NE MON IC _ WORDS _ SIZE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . show Failed Tip ( getString ( R . string . wallet _ mn emonic _ select _ all _ tip )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mn emon ics . to Mnemonic () Ġ!= Ġm Wallet Mnemonic Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . show Failed Tip ( getString ( R . string . wallet _ mn emonic _ order _ error _ tip )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įåĲĮ åħ¬ éĵ¾ æł¡éªĮ åĬ© è®° è¯į ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWallet Account Manager ( m Wallet Local Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check Mnemonic ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Ġ= Ġm Wallet Mnemonic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Wallet () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Fail Ġ= Ġ{ Ġmsg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . show Failed Tip ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Adapter () ĊĊĠĠĠĠĠĠĠ Ġinit Word Adapter () ĊĠĠĠĠĠĠĠ Ġinit Selected Word Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Word Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Random Mnemonic Adapter Ġ= ĠWallet Mnemonic Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Mn emon ics Ġ= Ġm Random Mn emon ics , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mn emon ics Ġ= Ġm Selected Mn emon ics ) Ġ{ Ġmnemonic Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Selected Mn emon ics . contains ( mn emonic )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mn emon ics . remove ( mn emonic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mn emon ics . add ( mn emonic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Random Mnemonic Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Selected Mnemonic Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Notice Text Visibility () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cycler _ view ?. init () ĊĠĠĠĠĠĠĠ Ġre cycler _ view ?. adapter Ġ= Ġm Random Mnemonic Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Selected Word Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Selected Mnemonic Adapter Ġ= ĠWallet Mnemonic Adapter ( m Selected Mn emon ics ) ĊĊĠĠĠĠĠĠĠ Ġselected _ recycler _ view ?. init () ĊĠĠĠĠĠĠĠ Ġselected _ recycler _ view ?. adapter Ġ= Ġm Selected Mnemonic Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Wallet () Ġ{ ĊĠĠĠĠĠĠĠ ĠShared Pref Kt . save Current Wallet Address And Local Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġm Wallet Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Type Ġ= Ġm Wallet Local Type ) ĊĊĠĠĠĠĠĠĠ ĠmContext . check Wallet Exists By PrivateKey ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprivateKey Ġ= Ġm Wallet PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Type Ġ= Ġm Wallet Local Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwallet Ġ= ĠWallet () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . address Ġ= Ġm Wallet Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . local Type Ġ= Ġm Wallet Local Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . name Ġ= Ġm Wallet Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . password Ġ= Ġm Wallet Password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . privateKey Ġ= Ġm Wallet PrivateKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . mn emonic Ġ= Ġm Wallet Mnemonic ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . keystore Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase . insert My Wallet ( wallet ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Util . wallet Create Success () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( mContext , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Failed Ġ= Ġ{ Ġmsg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . show Failed Tip ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }