package Ġcom . example . translator Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġcom . example . translator . databinding . Activity SignUp Binding Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ Ċ class ĠSign Up Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// view Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity SignUp Binding ĊĊĠĠĠ Ġ// ActionBar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaction Bar : ĠAction Bar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress Dialog : ĠProgress Dialog ĊĊĠĠĠ Ġ// firebase Auth ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfirebase Auth : ĠFirebase Auth ĊĊĠĠĠ Ġprivate Ġvar Ġemail Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġpassword Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity SignUp Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġ// action bar ĊĠĠĠĠĠĠĠ Ġaction Bar Ġ= Ġsupport ActionBar !! ĊĠĠĠĠĠĠĠ Ġaction Bar . title Ġ= Ġ" Sign ĠUp " ĊĠĠĠĠĠĠĠ Ġaction Bar . set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġaction Bar . set Display Show Home Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setTitle (" Please Ġwait ") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Creating Ġaccount Ġ") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . set Canceled On Touch Outside ( false ) ĊĊĠĠĠĠĠĠĠ Ġfirebase Auth Ġ= ĠFirebase Auth . getInstance () ĊĊĠĠĠĠĠĠĠ Ġbinding . sign Up Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Data (){ ĊĠĠĠĠĠĠĠ Ġemail Ġ= Ġbinding . email Et . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġbinding . password Et . text . toString (). trim () ĊĊĠĠĠĠĠĠĠ Ġif (! Patterns . EMAIL _ ADDRESS . matcher ( email ). matches ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . email Et . error Ġ= Ġ" Invalid Ġemail Ġformat " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif ( TextUtils . isEmpty ( password )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . password Et . error Ġ= Ġ" Enter Ġpass " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif ( password . length Ġ< Ġ 6 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . password Et . error Ġ= Ġ" Password Ġmust Ġbe Ġgreater Ġthan Ġ 6 Ġchars " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase SignUp () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfirebase SignUp (){ ĊĠĠĠĠĠĠĠ Ġprogress Dialog . show () ĊĊĠĠĠĠĠĠĠ Ġfirebase Auth . createUser With Email And Password ( email , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirebase User Ġ= Ġfirebase Auth . currentUser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġfirebase User !!. email ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Account Ġcreate Ġwith Ġemail Ġ$ email ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġe -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Signup Ġfailed Ġdue Ġto Ġ${ e . message }", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Support Navigate Up () ĊĠĠĠ Ġ} Ċ }