package Ġcom . argon labs . cards x . ui . activities Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . andro gn ito . pin lock view . Indicator Dot s Ċ import Ġcom . andro gn ito . pin lock view . Pin Lock Listener Ċ import Ġcom . argon labs . cards x . R Ċ import Ġcom . argon labs . cards x . base . Base Activity Ċ import Ġcom . argon labs . cards x . base . Base Application . Companion . get m Instance Ċ import Ġcom . argon labs . cards x . databinding . Activity Authenticate Binding Ċ import Ġcom . argon labs . cards x . managers . Activity Switch Manager Ċ import Ġcom . argon labs . cards x . utils . Locker Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . squareup . pic asso . Callback Ċ import Ġcom . squareup . pic asso . Network Policy Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ class ĠAuth enticate Activity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Authenticate Binding ĊĠĠĠ Ġprivate Ġval Ġm Pin Lock Listener : ĠPin Lock Listener Ġ= Ġobject Ġ: ĠPin Lock Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete ( pin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" Pin Ġcomplete : Ġ$ pin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Pin ( pin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Empty () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" Pin Ġempty ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pin Change ( pin Length : ĠInt , Ġintermediate Pin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" Pin Ġchanged , Ġnew Ġlength Ġ$ pin Length Ġwith Ġintermediate Ġpin Ġ$ intermediate Pin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Authenticate Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġbinding . pin Lock View . attach Indicator Dot s ( binding . indicator Dot s ) ĊĠĠĠĠĠĠĠ Ġbinding . pin Lock View . set Pin Lock Listener ( m Pin Lock Listener ) ĊĠĠĠĠĠĠĠ Ġbinding . pin Lock View . pin Length Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġbinding . pin Lock View . textColor Ġ= ĠContext Compat . getColor ( this , ĠR . color . white ) ĊĠĠĠĠĠĠĠ Ġbinding . indicator Dot s . indicator Type Ġ= ĠIndicator Dot s . Indicator Type . FILL _ WITH _ ANIM ATION ĊĠĠĠĠĠĠĠ Ġinit Components () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Components () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Load ĠData ĊĠĠĠĠĠĠĠ Ġvar Ġtemp Name Ġ= Ġm Auth !!. currentUser !!. displayName ĊĠĠĠĠĠĠĠ Ġif Ġ( temp Name !!. contains (" Ġ")) Ġtemp Name Ġ= Ġtemp Name . substring ( 0 , Ġtemp Name . indexOf (' Ġ')) ĊĊĠĠĠĠĠĠĠ Ġ// Set ĠT VS ĊĠĠĠĠĠĠĠ Ġbinding . username Tv . text Ġ= ĠgetString ( R . string . username Hi ). replace ("% name %", Ġtemp Name ) ĊĠĠĠĠĠĠĠ Ġload Profile Pic () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Profile Pic () Ġ{ ĊĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( m Auth !!. currentUser !!. photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. network Policy ( Network Policy . OFF LINE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . profile Image , Ġobject Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( m Auth !!. currentUser !!. photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . img _ no _ avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . profile Image , Ġobject Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠException ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Msg ( msg : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( binding . main Layout , Ġmsg !! , ĠSn ackbar . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠ Ġsn ackbar . setAction TextColor ( getColor ( R . color . white )) ĊĠĠĠĠĠĠĠ Ġsn ackbar . setAction ( getString ( R . string . ok )) Ġ{ Ġview : ĠView ? Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġval Ġsn ackBar View Ġ= Ġsn ackbar . view ĊĠĠĠĠĠĠĠ Ġsn ackBar View . set BackgroundColor ( getColor ( R . color . color Accent )) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġsn ackBar View . findViewById < TextView >( com . google . android . material . R . id . sn ackbar _ text ) ĊĠĠĠĠĠĠĠ ĠtextView . setTextColor ( getColor ( R . color . white )) ĊĠĠĠĠĠĠĠ Ġsn ackbar . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Pin ( pin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocked Data Ġ= ĠBase 6 4 . decode ( shared Preferences !!. getString (" hex Code ", Ġ""), ĠBase 6 4 . NO _ WRAP ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( String ( Locker . decrypt Data ( locked Data , Ġpin ) !! , ĠChar sets . UTF _ 8 ) Ġ== Ġm Auth !!. uid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget m Instance () !!. session Key Ġ= Ġpin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Switch Manager ( this @ Authenticate Activity , ĠMainActivity :: class . java ). open Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġinvalid Pin () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Pin () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinvalid Pin () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Msg (" Invalid ĠSecurity ĠKey !") ĊĠĠĠĠĠĠĠ Ġbinding . pin Lock View . reset Pin Lock View () ĊĠĠĠ Ġ} Ċ }