package Ġcom . example . self care . data . model . repositories Ċ Ċ import Ġandroid . content . Content Values . TAG Ċ import Ġandroid . util . Log Ċ import Ġandroidx . compose . runtime . Mutable State Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġcom . google . firebase . auth . k tx . auth Ċ import Ġcom . google . firebase . auth . k tx . user Profile Change Request Ċ import Ġcom . google . firebase . database . k tx . database Ċ import Ġcom . google . firebase . k tx . Firebase Ċ Ċ /** Ċ Ġ* ĠCOMP 9 0 0 1 8 Ġ- ĠSelf Care Ċ Ġ* Ġ[ UserRepository ] Ġfunctions Ġused Ġto Ġobtain ĠUser ĠInformation Ġsuch Ġas Ġ[ setUser DisplayName ] Ġand Ċ Ġ* Ġ[ setUser Email ] Ċ Ġ*/ Ċ Ċ class ĠUser Repository Ġ{ ĊĊĠĠĠ Ġfun ĠgetUser DisplayName (): ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠMutable State < String > Ġ= Ġmutable State Of ("") ĊĠĠĠĠĠĠĠ Ġuser ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . displayName != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . value Ġ= Ġuser . displayName !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġname . value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetUser Email (): ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġval Ġemail : ĠMutable State < String > Ġ= Ġmutable State Of ("") ĊĠĠĠĠĠĠĠ Ġuser ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail . value Ġ= Ġuser . email !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġemail . value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetUser UID (): ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġval Ġuid : ĠMutable State < String > Ġ= Ġmutable State Of ("") ĊĠĠĠĠĠĠĠ Ġuser ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuid . value Ġ= Ġuser . uid ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" inside Ġget Ġ", Ġuser . uid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġuid . value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetUser DisplayName ( new DisplayName : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ ĠLog . d (" inside Ġrepo ", Ġnew DisplayName ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Updates Ġ= Ġuser Profile Change Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġnew DisplayName ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser !!. update Profile ( profile Updates ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" User Ġprofile Ġupdated .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . d (" ins id ere po 2 ", ĠgetUser DisplayName ()) ĊĠĠĠ Ġ} ĊĊĠĠ Ġfun ĠsetUser Email ( new Email : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġuser !!. update Email ( new Email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" User Ġemail Ġaddress Ġupdated .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetUser Password ( new Password : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġuser !!. update Password ( new Password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" User Ġpassword Ġupdated .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġdelete User () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Ġ= ĠFirebase . database (" https :// kotlin - self - care - default - r tdb . firebase io . com / "). reference ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠFirebase . auth . currentUser ĊĠĠĠĠĠĠĠ Ġval Ġuser Ref Ġ= Ġdatabase . child (" users "). child ( user !!. uid ). ref ĊĠĠĠĠĠĠĠ Ġuser Ref . remove Value () ĊĊĠĠĠĠĠĠĠ Ġuser !!. delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" User Ġaccount Ġdeleted .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ