package Ġcom . gel son . tq ilo ans Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . widget . Toast Ċ import Ġcom . gel son . tq ilo ans . databinding . Activity Registro Binding Ċ Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database ĊĊĊĊ Ċ class ĠRegist ro Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġdatabase : ĠFirebase Database Ġ= ĠFirebase Database . getInstance () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Registro Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress Dialog : ĠProgress Dialog ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfirebase Auth : ĠFirebase Auth ĊĠĠĠ Ġvar Ġdb Reference Ġ: ĠDatabase Reference ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdb : ĠFirebase Database ? Ġ= Ġnull ĊĊĊĠĠĠ Ġprivate Ġvar Ġemail Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġpassword Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġname Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġincome Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġaddress Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġc pf Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġrg Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġcity Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġstate Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Registro Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setTitle (" Por Ġfavor , ĠA gu ar de ") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Cri ando Ġa Ġconta ...") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . set Canceled On Touch Outside ( false ) ĊĊĠĠĠĠĠĠĠ Ġfirebase Auth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠ Ġdb Ġ= ĠFirebase Database . getInstance () ĊĠĠĠĠĠĠĠ Ġdb Reference Ġ= Ġdb !!. reference . child (" profile ") ĊĊĊĠĠĠĠĠĠĠ Ġbinding . btn Cad astro 1 . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . btn Cancel ar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠLogin Ġ:: Ġclass . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠColor . BLACK ; ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. hide (); ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġvalidate Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġemail Ġ= Ġbinding . ed t Email . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġbinding . ed t Sen ha . text . toString (). trim () Ġ// TODO : ĠAr ma zen ar Ġsen ha Ġcri pto ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġbinding . ed t Name . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġc pf Ġ= Ġbinding . ed t CP F . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġrg Ġ= Ġbinding . ed t RG . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġaddress Ġ= Ġbinding . ed t Address . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġincome Ġ= Ġbinding . ed t R enda . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġcity Ġ= Ġbinding . ed t City . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġbinding . ed t State . text . toString (). trim () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Patterns . EMAIL _ ADDRESS . matcher ( email ). matches ()) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t Email . error Ġ= Ġ" Email Ġinvalid o " ĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( password )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t Sen ha . error Ġ= Ġ" Erro " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( password . length Ġ< Ġ 8 ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t Sen ha . error Ġ= Ġ" Sen ha Ġcur ta " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( name )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t Name . error Ġ= Ġ" F avor Ġdigit ar Ġo Ġnome " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( cpf )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t CP F . error Ġ= Ġ" F avor Ġdigit ar Ġo Ġc pf " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( rg )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t RG . error Ġ= Ġ" F avor Ġdigit ar Ġo Ġrg " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( address )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t Address . error Ġ= Ġ" F avor Ġdigit ar Ġo ĠEn dere Ã§o " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( income )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t R enda . error Ġ= Ġ" F avor Ġdigit ar Ġo ĠR enda " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( city )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t City . error Ġ= Ġ" F avor Ġdigit ar Ġo ĠC idade " ĊĊĠĠĠĠĠĠĠ Ġ} else Ġif ( TextUtils . isEmpty ( state )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ed t State . error Ġ= Ġ" F avor Ġdigit ar Ġo ĠEst ado " ĊĊĠĠĠĠĠĠĠ Ġ} 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 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠHome Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcurrentUser Ġ= Ġfirebase Auth . currentUser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcurrentUser Db Ġ= Ġdb Reference ?. child (( currentUser ?. uid !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" name ") ?. setValue ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" cpf ") ?. setValue ( cpf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" rg ") ?. setValue ( rg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" address ") ?. setValue ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" income ") ?. setValue ( income ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" city ") ?. setValue ( city ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Db ?. child (" state ") ?. setValue ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Usuario Ġcada str ado ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" fal ha Ġao Ġtent ar Ġcada strar , Ġt ente Ġnov amente ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" F al ha Ġ${ e . message }", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } ĊĊ