package Ġorg . trust note . super wallet . biz . home Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . design . widget . Tab Layout Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . app . Fragment Pager Adapter Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġcom . google . gson . JsonObject Ċ import Ġorg . trust note . super wallet . R Ċ import Ġorg . trust note . super wallet . T App Ċ import Ġorg . trust note . super wallet . biz . TTT Ċ import Ġorg . trust note . super wallet . biz . wallet . Fragment Wallet Base Ċ import Ġorg . trust note . super wallet . biz . wallet . Wallet Manager Ċ import Ġorg . trust note . super wallet . u iframe work . Fragment Base Ċ import Ġorg . trust note . super wallet . util . Android Utils Ċ import Ġorg . trust note . super wallet . util . My Thread Manager Ċ import Ġorg . trust note . super wallet . util . TTT Utils Ċ import Ġorg . trust note . super wallet . widget . Clear able EditText Ċ import Ġorg . trust note . super wallet . widget . Fragment Dialog Input Pwd Ċ import Ġorg . trust note . super wallet . widget . My Dialog Fragment Ċ import Ġorg . trust note . super wallet . widget . My Text Watcher Ċ Ċ class ĠFragment Main Create Wallet Ġ: ĠFragment Wallet Base () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . f _ main _ create _ wallet ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Fragment ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Fragment ( view ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFind Ġthe Ġview Ġpager Ġthat Ġwill Ġallow Ġthe Ġuser Ġto Ġswipe Ġbetween Ġfragments ĊĠĠĠĠĠĠĠ Ġval Ġview Pager : ĠView Pager Ġ= Ġm Root View . findViewById ( R . id . view pager ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġan Ġadapter Ġthat Ġknows Ġwhich Ġfragment Ġshould Ġbe Ġshown Ġon Ġeach Ġpage ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠSimple Fragment Pager Adapter ( activity , Ġchild FragmentManager ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġadapter Ġonto Ġthe Ġview Ġpager ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġ// ĠGive Ġthe ĠTab Layout Ġthe ĠView Pager ĊĠĠĠĠĠĠĠ Ġval Ġtab Layout Ġ= ĠfindViewById < Tab Layout >( R . id . sl iding _ tabs ) ĊĠĠĠĠĠĠĠ Ġtab Layout . setup With ViewPager ( view Pager ) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠFragment Main Create Wallet Normal Ġ: ĠFragment Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . f _ main _ create _ wallet _ normal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġedit Text : ĠClear able EditText ĊĠĠĠ Ġlateinit Ġvar Ġbutton : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġerr : ĠTextView ĊĊĠĠĠ Ġprivate Ġval Ġtext Watcher Ġ= ĠMy Text Watcher ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġinit Fragment ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Fragment ( view ) ĊĊĠĠĠĠĠĠĠ Ġedit Text Ġ= Ġview . findViewById ( R . id . create _ wallet _ normal ) ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( text Watcher ) ĊĊĠĠĠĠĠĠĠ Ġedit Text . setOn Editor ActionListener ( object Ġ: ĠTextView . On Editor ActionListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Editor Action ( v : ĠTextView ?, Ġaction Id : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* éļĲèĹı è½¯ éĶ® çĽĺ * /// TODO : ĠRE USE Ġcode : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Method Manager Ġ= Ġactivity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input Method Manager . isActive ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( activity . getCurrent Focus (). getWindow Token (), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġerr Ġ= Ġview . findViewById < EditText >( R . id . create _ wallet _ normal _ err ) ĊĊĠĠĠĠĠĠĠ ĠAndroid Utils . hide Err If Has Focus ( edit Text , Ġerr ) ĊĊĠĠĠĠĠĠĠ Ġbutton Ġ= Ġview . findViewById < Button >( R . id . create _ wallet _ normal _ btn ) ĊĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Empty Wallet s Ġ= ĠWallet Manager . model . get Av a iable Wallet s ForUser (). filter Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! it . is Auto Ġ&& Ġit . tx Details . isEmpty () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Empty Wallet s . size Ġ>= ĠT TT . MAX _ EMPTY _ WAL LET _ COUNT ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Dialog Fragment . show Msg ( activity , ĠR . string . too _ m uch _ empty _ wallet ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit Text . text . toString (). trim (). length Ġ> Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFragment Dialog Input Pwd () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . confirm Logic Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Thread Manager . instance . run JS In Non UIT hread Ġ{ ĠWallet Manager . model . new Manual Wallet ( it , Ġedit Text . text . toString (). trim ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . on Back Pressed () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd L 2 Fragment ( f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Toolbar Visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= ĠT App . resources . get Dimension Pixel Size ( R . dim en . page _ margin _ 2 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Root View . set Padding ( padding , Ġ 0 , Ġpadding , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Or Hide Toolbar () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . update UI () ĊĊĠĠĠĠĠĠĠ ĠAndroid Utils . disable Btn ( button ) ĊĠĠĠĠĠĠĠ Ġerr . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠ Ġval Ġs iz Ġ= Ġedit Text . text . toString (). length ĊĠĠĠĠĠĠĠ Ġif Ġ( s iz Ġin Ġ 1 .. 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utils . enable Btn ( button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerr . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( s iz Ġ> Ġ 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utils . disable Btn ( button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerr . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFragment Main Create Wallet Ob serve Empty Ġ: ĠFragment Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . f _ empty ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Fragment ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Bottom Layer UI Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsuper . init Fragment ( view ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFragment Main Create Wallet Ob serve Ġ: ĠFragment Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . f _ main _ create _ wallet _ observe ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠtextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbtn : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscan Result Json : ĠJsonObject ĊĠĠĠ Ġprivate Ġvar Ġmy Qr Code Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġobserver Address Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun Ġinit Fragment ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Fragment ( view ) ĊĠĠĠĠĠĠĠ Ġval ĠwebView : ĠWebView Ġ= Ġview . findViewById ( R . id . create _ wallet _ observer _ warning ) ĊĊĠĠĠĠĠĠĠ ĠAndroid Utils . setup Warning WebView ( web View , ĠR . string . OV SERVER _ WAL LET _ WARNING 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . OV SERVER _ WAL LET _ WARNING 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscan Icon Ġ= Ġm Root View . findViewById < View >( R . id . create _ wallet _ observer _ scan ) ĊĠĠĠĠĠĠĠ Ġsetup Scan ( scan Icon ) Ġ{ Ġshow Scan Result ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠtextView Ġ= Ġm Root View . findViewById ( R . id . create _ wallet _ observer _ input ) ĊĊĠĠĠĠĠĠĠ Ġbtn Ġ= Ġm Root View . findViewById ( R . id . create _ wallet _ observer _ start btn ) ĊĊĠĠĠĠĠĠĠ Ġbtn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Code Wallet Qr Code () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Scan Result ( Android Utils . get Qr code From Bundle ( arguments )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Toolbar Visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= ĠT App . resources . get Dimension Pixel Size ( R . dim en . page _ margin _ 2 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Root View . set Padding ( padding , Ġ 0 , Ġpadding , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Or Hide Toolbar () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Code Wallet Qr Code () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFragment Dialog Create Observer QR Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utils . open Dialog ( activity , ĠFragment Dialog Create Observer Finish Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Thread Manager . instance . run JS In Non UIT hread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Observer Wallet () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserver Address Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAndroid Utils . add Fragment Arguments ( f , ĠT TT . KEY _ QR _ CODE , Ġmy Qr Code ) ĊĠĠĠĠĠĠĠ ĠAndroid Utils . open Dialog ( activity , Ġf , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Observer Wallet () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġscan Result Json . get (" n ") ?. as Int ĊĠĠĠĠĠĠĠ Ġval Ġpub key Ġ= Ġscan Result Json . get (" pub ") ?. asString ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġscan Result Json . get (" name ") ?. asString ĊĊĠĠĠĠĠĠĠ ĠWallet Manager . model . new Ob serve Wallet ( index Ġ?: Ġ 0 , Ġpub key Ġ?: Ġ"", Ġtitle Ġ?: Ġ"") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . update UI () ĊĠĠĠĠĠĠĠ Ġif Ġ( textView . text . toString (). isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utils . disable Btn ( btn ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utils . enable Btn ( btn ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Scan Result ( scan Result Str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscan Result Json Ġ= ĠT TT Utils . scan StringTo JsonObject ( scan Result Str ) ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġscan Result Json . get (" pub ") ?. asString ĊĊĠĠĠĠĠĠĠ ĠMy Thread Manager . instance . run JS In Non UIT hread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Qr Code Ġ= ĠT TT Utils . gen Col d Scan code Step 2 ( scan Result Json ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠSimple Fragment Pager Adapter ( private Ġval ĠmContext : ĠContext , Ġfm : ĠFragment Manager ) Ġ: ĠFragment Pager Adapter ( fm ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Base Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFragment Main Create Wallet Normal () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . m Toolbar Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFragment Main Create Wallet Ob serve Empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . m Toolbar Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠmContext . getString ( R . string . create _ wallet _ tab _ title _ normal ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠmContext . getString ( R . string . create _ wallet _ tab _ title _ observe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ