/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . en f le . loan manager . user Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . auth . k tx . user Profile Change Request Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . State Flow Ċ Ċ class ĠEdit Profile ViewModel ( ĊĠĠĠ Ġin Preview Mode : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ name : ĠMutable State Flow < String > Ġ= ĠMutable State Flow ("") ĊĠĠĠ Ġval Ġname : ĠState Flow < String > Ġ= Ġ_ name ĊĊĠĠĠ Ġprivate Ġval Ġ_ email : ĠMutable State Flow < String > Ġ= ĠMutable State Flow ("") ĊĠĠĠ Ġval Ġemail : ĠState Flow < String > Ġ= Ġ_ email ĊĊĠĠĠ Ġprivate Ġval Ġ_ phoneNumber : ĠMutable State Flow < String > Ġ= ĠMutable State Flow ("") ĊĠĠĠ Ġval ĠphoneNumber : ĠState Flow < String > Ġ= Ġ_ phoneNumber ĊĊĠĠĠ Ġprivate Ġval Ġ_ photoUrl : ĠMutable State Flow < Uri > Ġ= ĠMutable State Flow ( Uri . EMPTY ) ĊĠĠĠ Ġval Ġphoto Url : ĠState Flow < Uri > Ġ= Ġ_ photoUrl ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! in Preview Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirebase Auth : ĠFirebase Auth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirebase User Ġ= Ġfirebase Auth . currentUser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ name . value Ġ= Ġfirebase User ?. displayName . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ email . value Ġ= Ġfirebase User ?. displayName . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ phoneNumber . value Ġ= Ġfirebase User ?. displayName . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ photoUrl . value Ġ= Ġfirebase User ?. photoUrl Ġ?: ĠUri . EMPTY ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ name . value Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ email . value Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ phoneNumber . value Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ photoUrl . value Ġ= ĠUri . EMPTY ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Name Change ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ name . value Ġ= Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Email Change ( email : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ email . value Ġ= Ġemail ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon PhoneNumber Change ( phoneNumber : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ phoneNumber . value Ġ= ĠphoneNumber ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Photo Url Change ( photoUrl : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ photoUrl . value Ġ= Ġphoto Url ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Profile () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirebase User Ġ= ĠFirebase Auth . getInstance (). currentUser ĊĠĠĠĠĠĠĠ Ġfirebase User ?. update Profile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Profile Change Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ_ name . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Uri Ġ= Ġ_ photoUrl . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ