package Ġcom . pri yan sh . brain reli ef . activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . widget .* Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Data Snapshot Ċ import Ġcom . google . firebase . database . Database Error Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . database . Value EventListener Ċ import Ġcom . google . firebase . database . k tx . database Ċ import Ġcom . google . firebase . database . k tx . getValue Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . google . firebase . storage . Upload Task Ċ import Ġcom . pri yan sh . brain reli ef . Class . UserProfile Ċ import Ġcom . pri yan sh . brain reli ef . R Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . activity _ edit _ details .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ register .* Ċ Ċ class ĠEdit Details Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġedit username Ġ: ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġedit number : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġed item ail : TextView ĊĠĠĠ Ġlateinit Ġvar Ġedit age : EditText ĊĠĠĠ Ġlateinit Ġvar Ġedit gender : TextView ĊĠĠĠ Ġlateinit Ġvar Ġedit Details : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġfirebase Auth : ĠFirebase Auth ĊĠĠĠ Ġlateinit Ġvar Ġfirebase Database : ĠFirebase Database ĊĠĠĠ Ġlateinit Ġvar Ġuser Profile : ĠUser Profile ĊĠĠĠ Ġlateinit Ġvar Ġimage Of User : ĠImageView ĊĠĠĠ Ġlateinit Ġvar Ġfirebase Storage : ĠFirebase Storage ĊĠĠĠ Ġval ĠP ICK _ IMAGE Ġ= Ġ 7 8 6 ĊĠĠĠ Ġvar Ġimage Path : ĠUri ? Ġ= null ĊĠĠĠ Ġvar Ġflag : ĠBoolean = Ġfalse ĊĠĠĠ Ġvar Ġflag 2 : ĠBoolean = Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ edit _ details ) ĊĊĠĠĠĠĠĠĠ Ġedit age = findViewById ( R . id . edit age ) ĊĠĠĠĠĠĠĠ Ġedit username = findViewById ( R . id . edit username ) ĊĠĠĠĠĠĠĠ Ġedit number = findViewById ( R . id . edit mobile Number ) ĊĠĠĠĠĠĠĠ Ġed item ail = findViewById ( R . id . ed item ail id ) ĊĠĠĠĠĠĠĠ Ġedit gender = findViewById ( R . id . edit gender ) ĊĠĠĠĠĠĠĠ Ġedit Details = findViewById ( R . id . save Details ) ĊĠĠĠĠĠĠĠ Ġimage Of User = ĠfindViewById ( R . id . user Image For Edit ) ĊĠĠĠĠĠĠĠ Ġfirebase Auth = ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠ Ġfirebase Database = ĠFirebase Database . getInstance () ĊĊĊĊĠĠĠĠĠĠĠ Ġval Ġdatabase Ġ= ĠFirebase . database ĊĠĠĠĠĠĠĠ Ġvar Ġuid Ġ: ĠString Ġ= Ġfirebase Auth . uid . toString () ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Reference Ġ= Ġdatabase . getReference ( uid ) ĊĊĠĠĠĠĠĠĠ Ġfirebase Storage = ĠFirebase Storage . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġstorage Reference = Ġfirebase Storage . reference ĊĠĠĠĠĠĠĠ Ġstorage Reference . child ( uid ). child (" Images / Profile ĠPicture "). download Url . add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( it ). fit (). center Crop (). into ( image Of User ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĠĠĠĠĠĠĠ Ġdatabase Reference . add Value EventListener ( object Ġ: ĠValue EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( data Snapshot : ĠData Snapshot ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Profile = Ġdata Snapshot . getValue < UserProfile >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit username . setText ( user Profile ?. userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit number . setText ( user Profile ?. user Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit age . setText ( user Profile ?. user Age ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit gender . text Ġ= Ġuser Profile ?. user Gender ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed item ail . text Ġ= Ġuser Profile ?. user Email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Edit Details , Ġerror . code , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġimage Of User . setOnClickListener { ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġflag = true ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Intent : ĠIntent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Intent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Intent . action Ġ= ĠIntent . ACTION _ GET _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Intent . create Chooser ( image Intent ," Select Ġan ĠImage Ġfor ĠProfile "), P ICK _ IMAGE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġedit Details . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( flag Ġ&& Ġflag 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstorage Ref : ĠStorage Reference Ġ= Ġfirebase Storage . reference ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ref : ĠStorage Reference Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Ref . child ( uid ). child (" Images "). child (" Profile ĠPicture ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupload Task : ĠUpload Task ? Ġ= Ġimage Path ?. let Ġ{ Ġit 1 Ġ-> Ġimage Ref . put File ( it 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( upload Task Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Task . add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Could ĠNot Ġupload Ġpic ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Uploaded Ġpic Ġsuccessfully ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit number . text . length Ġ< Ġ 1 0 Ġ|| Ġedit number . text . length Ġ> Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit number . error Ġ= Ġ" Invalid " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit username . text . isBlank () Ġ|| Ġedit username . text . length Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit username . error Ġ= Ġ" Field ĠMissing !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit age . text . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit age . error Ġ= Ġ" Age ĠMissing " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname = Ġedit username . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġage = Ġedit age . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmobile Ġ= Ġedit number . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail = Ġed item ail . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgender = edit gender . text . toString (). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Profile = UserProfile ( email , name , mobile , age , gender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Reference . setValue ( user Profile ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Details ĠUpdated ĠSuccessfully ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code == 7 8 6 Ġ&& ĠresultCode Ġ== ĠRESULT _ OK Ġ&& Ġdata ?. data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Path Ġ= Ġdata . data !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap : ĠBitmap Ġ= ĠMedia Store . Images . Media . get Bitmap ( content Resolver , Ġimage Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Of User . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflag 2 = true ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed (){ ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĊĠĠĠĠĠĠĠ ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ }