package Ġid . can war . study point . activities Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġid . can war . study point . R Ċ import Ġid . can war . study point . dialogs . Loading Dialog Ċ import Ġid . can war . study point . firebase . Authentication Ċ import Ġid . can war . study point . firebase . Database Ċ import Ġkotlinx . android . synt hetic . main . activity _ register .* Ċ Ċ class ĠRegister Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġauthentication Ġ= ĠAuthentication . getInstance () ĊĠĠĠ Ġprivate Ġval Ġdatabase Ġ= ĠDatabase . getInstance () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġloading Dialog : ĠLoading Dialog ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ register ) ĊĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġloading Dialog Ġ= ĠLoading Dialog ( this ) ĊĊĠĠĠĠĠĠĠ Ġregister _ button . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġregister _ email . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfirstName Ġ= Ġregister _ first _ name . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlastName Ġ= Ġregister _ last _ name . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġon RadioButton Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbirthday Ġ= Ġregister _ birthday . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġregister _ password . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfirm Password Ġ= Ġregister _ confirm _ password . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregister SK Ġ= Ġregister _ sk . isChecked ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis Error Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Patterns . EMAIL _ ADDRESS . matcher ( email ). matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ email . error Ġ= Ġ" Invalid Ġemail " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ email . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( password . length Ġ< Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ password . error Ġ= Ġ" Password Ġmust Ġbe Ġleast Ġof Ġ 8 Ġcharacter " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ password . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( password Ġ!= Ġconfirm Password ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ confirm _ password . error Ġ= Ġ" Password Ġnot Ġmatched " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ confirm _ password . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! register SK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" You Ġmust Ġaccept ĠSK ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( role Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Role Ġis Ġempty ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserData Ġ= Ġhash Map Of < String , ĠAny >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" email " Ġto Ġemail , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" firstName " Ġto ĠfirstName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" lastName " Ġto ĠlastName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" role " Ġto Ġrole !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" birthday " Ġto Ġbirthday , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" point " Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" total Item " Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" t ugas D iker j akan " Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" image " Ġto Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthentication ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. createNew User With Email And Password ( email , Ġpassword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserData [" userId "] Ġ= Ġauthentication . get UID () !! ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . crate User ( userData ) Ġ{ Ġtask Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Register Ġfailed ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon RadioButton Clicked (): ĠString ? Ġ= Ġwhen Ġ( register _ radio _ group . checked RadioButton Id ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR . id . register _ radio _ student Ġ-> Ġ" student " ĊĠĠĠĠĠĠĠ ĠR . id . register _ radio _ teacher Ġ-> Ġ" teacher " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ Ċ }