package Ġcom . example . challenge 2 . activity Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġcom . example . challenge 2 . R Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . example . challenge 2 . model . Users Model Ċ import Ġcom . example . challenge 2 . view model . Users ViewModel Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroidx . activity . view Models Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Patterns Ċ import Ġcom . example . challenge 2 . util . t ampil Toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ edit _ profile .* Ċ Ċ class ĠEdit Profile Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġval ĠviewModel Ġby Ġview Models < Users ViewModel >() ĊĠĠĠ Ġlateinit Ġvar Ġm ref : ĠDatabase Reference ĊĠĠĠ Ġlateinit Ġvar Ġstorage Reference : ĠStorage Reference ĊĠĠĠ Ġlateinit Ġvar Ġuid : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġpass : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ edit _ profile ) ĊĠĠĠĠĠĠĠ Ġwindow . set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠviewModel . init ( base Context ) ĊĠĠĠĠĠĠĠ Ġm ref Ġ= ĠFirebase Database . getInstance (). reference ĊĠĠĠĠĠĠĠ Ġstorage Reference Ġ= ĠFirebase Storage . getInstance (). reference ĊĠĠĠĠĠĠĠ Ġuid Ġ= ĠFirebase Auth . getInstance (). currentUser !!. uid ĊĠĠĠĠĠĠĠ ĠviewModel . all Users . observe Fore ver Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . let Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dt Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dt . uid Ġ== Ġuid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Edit . setText ( dt . nama ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Edit . setText ( dt . username ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtele phone Edit . setText ( dt . tele pon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Edit . setText ( dt . alamat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Edit . setText ( dt . email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass Ġ= Ġdt . password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Update Cov id . setOnClickListener Ġ{ Ġupdate Data () Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġupdate Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġname Edit . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġusername Edit . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġval Ġtele phone Ġ= Ġtele phone Edit . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġaddress Edit . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . isEmpty () Ġ-> Ġname Edit . error Ġ= Ġ" Nama ĠL eng kap Ġhar us Ġdi isi " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername . isEmpty () Ġ-> Ġusername Edit . error Ġ= Ġ" Nama ĠPeng guna Ġhar us Ġdi isi " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtele phone . isEmpty () Ġ-> Ġtele phone Edit . error Ġ= Ġ" Nom or ĠTele pon Ġhar us Ġdi isi " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress . isEmpty () Ġ-> Ġaddress Edit . error Ġ= Ġ" Al amat Ġhar us Ġdi isi " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpush Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġpush Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname PD Ġ= Ġname Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġusername PD Ġ= Ġusername Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġtele phone PD Ġ= Ġtele phone Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġaddress PD Ġ= Ġaddress Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġemail PD Ġ= Ġemail Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUsers Model ( uid , Ġname PD , Ġusername PD , Ġemail PD , Ġtele phone PD , Ġpass , Ġaddress PD ) ĊĠĠĠĠĠĠĠ Ġm ref . child (" users "). child ( uid ). setValue ( user ). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Data ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ampil Toast ( base Context , Ġit . message . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ