package Ġcom . example . sv book market . activities čĊč Ċ import ĠCurrent UserInfo č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . os . Handler č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . widget . Button č Ċ import Ġandroid . widget . TextView č Ċ import Ġandroid . widget . Toast č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġcom . example . sv book market . R č Ċ import Ġcom . example . sv book market . activities . common . App Util č Ċ import Ġcom . example . sv book market . activities . model . App Account č Ċ import Ġcom . example . sv book market . activities . model . User č Ċ import Ġcom . example . sv book market . activities . view model . Load Dialog č Ċ import Ġcom . google . firebase . auth . Firebase Auth č Ċ import Ġcom . google . firebase . auth . k tx . auth č Ċ import Ġcom . google . firebase . firestore . k tx . firestore č Ċ import Ġcom . google . firebase . k tx . Firebase č Ċ import Ġkotlin . system . exit Process čĊč Ċ class ĠWelcome Activity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth : ĠFirebase Auth čĊĠĠĠ Ġprivate Ġval Ġdb Ġ= ĠFirebase . firestore čĊĠĠĠ Ġprivate Ġval Ġdb Accounts Reference Ġ= Ġdb . collection (" accounts ") čĊĠĠĠ Ġvar Ġload Dialog Ġ= ĠLoad Dialog ( this ) čĊĠĠĠ Ġvar Ġis Back Pressed Once Ġ= Ġfalse čĊčĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ welcome ) čĊĠĠĠĠĠĠĠ Ġauth Ġ= ĠFirebase . auth čĊčĊĠĠĠĠĠĠĠ Ġvar Ġlogin : ĠButton Ġ= ĠfindViewById ( R . id . btn Login ) čĊĠĠĠĠĠĠĠ Ġlogin . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base Context , ĠLogin Activity :: class . java )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish (); čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Back Pressed () Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( is Back Pressed Once ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġthis . is Back Pressed Once Ġ= Ġtrue čĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Please Ġclick ĠBACK Ġagain Ġto Ġexit ", ĠToast . LENGTH _ SHORT ). show () čĊčĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ( Runnable Ġ{ Ġis Back Pressed Once Ġ= Ġfalse Ġ}, Ġ 2 0 0 0 ) čĊĠĠĠ Ġ} čĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonStart () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onStart () čĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġuser Ġis Ġsigned Ġin Ġ( non - null ) Ġand Ġupdate ĠUI Ġaccordingly . čĊĠĠĠĠĠĠĠ Ġval ĠcurrentUser Ġ= Ġauth . currentUser čĊĠĠĠĠĠĠĠ Ġif Ġ( currentUser Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Dialog . start Loading () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Data ( currentUser . email . toString ()) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġload Data ( email : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġdb Accounts Reference . document ( email ). get () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġresult Ġ-> čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Map Ġ= Ġresult [" user "] Ġas ĠHashMap < *, Ġ*> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecent User : ĠUser Ġ= ĠUser ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġuser Map [" fullName "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġuser Map [" gender "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbirth Day Ġ= Ġuser Map [" birth Day "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠphoneNumber Ġ= Ġuser Map [" phoneNumber "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Lane Ġ= Ġuser Map [" address Lane "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġuser Map [" city "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistrict Ġ= Ġuser Map [" district "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Util . currentUser Ġ= Ġrecent User čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Util . current Account Ġ= ĠApp Account ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [" email "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [" password "]. toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent User čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCurrent UserInfo . getInstance () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base Context , ĠHome Activity :: class . java )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Dialog . dismiss Dialog () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }