package Ġcom . dbs rm . e vo Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġkotlinx . android . synt hetic . main . activity _ register .* Ċ import Ġjava . util .* Ċ Ċ class ĠRegister Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ register ) ĊĊĠĠĠĠĠĠĠ Ġregister _ progress Bar . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠ Ġregister _ btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister The User () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġselect _ photo . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ P ICK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalready have acc _ btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor Ġ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġselect Photo Uri : ĠUri ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġ 0 Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Photo Uri Ġ= Ġdata . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠMedia Store . Images . Media . get Bitmap ( content Resolver , select Photo Uri ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġphoto _ upload _ register . setImage Bitmap ( bitmap ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect _ photo . alpha Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Drawable Ġ= ĠBitmap Drawable ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect _ photo . setBackground Drawable ( bitmap Drawable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister The User (){ ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġregister _ mail . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġregister _ password . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġregister _ name . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġphoto Ġ= Ġphoto _ upload _ register ĊĠĠĠĠĠĠĠ Ġif ( username . isEmpty () || email . isEmpty () || password . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Please Ġfill Ġall Ġthe ĠDetails ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} else Ġif ( photo . get Drawable () Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Please ĠChoose ĠYour ĠImage ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠFirebase Auth . getInstance (). createUser With Email And Password ( email , password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! it . is Successful ) Ġreturn @ add On Complete Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister _ progress Bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Image To Firebase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Failed ĠTo Ġcreate ĠUser Ġ${ it . message }", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupload Image To Firebase (){ ĊĠĠĠĠĠĠĠ Ġif ( select Photo Uri Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġfname Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġref Ġ= ĠFirebase Storage . getInstance (). getReference ("/ profile Images /$ fname ") ĊĊĠĠĠĠĠĠĠ Ġref . put File ( select Photo Uri !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref . download Url . add On Success Listener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave User On Firebase Database ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Failed Ġto ĠUpload ĠImage Ġ${ it . message }", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave User On Firebase Database ( profile ImageUrl : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= ĠFirebase Auth . getInstance (). uid Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġref Ġ= ĠFirebase Database . getInstance (). getReference ("/ all Users /$ uid ") ĊĊĠĠĠĠĠĠĠ Ġval Ġall user Ġ= ĠAll User ( uid , register _ name . text . toString (), profile ImageUrl ) ĊĊĠĠĠĠĠĠĠ Ġref . setValue ( all user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , MainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor Ġ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ class ĠAll User ( val Ġuid : String , Ġval Ġname : String , Ġval Ġprofile ImageUrl : ĠString ) Ċ { ĊĠĠĠ Ġconstructor (): Ġthis (" ",""," ") Ċ } Ċ