package Ġmx . ites m . di bu j ando app . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ 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 . k tx . Firebase Ċ import Ġmx . ites m . di bu j ando app . databinding . Fragment Datos Don aciones Binding Ċ import Ġmx . ites m . di bu j ando app . view model . Datos Don aciones VM Ċ import Ġmx . ites m . di bu j ando app . model . Usuario Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠAuto res : Ċ Ġ* ĠL uis ĠIgn ac io ĠF erro ĠSal inas Ċ Ġ* ĠJo an ĠDaniel ĠGu err ero ĠG arc ÃŃa Ċ Ġ* Ċ Ġ* ĠÃ ļ lt ima Ġmodific aciÃ³n : Ċ Ġ* Ġ 2 2 Ġde Ġoct ub re Ġde Ġ 2 0 2 1 Ċ Ġ* Ċ Ġ* ĠDescri pciÃ³n : Ċ Ġ* ĠDat os Don aciones Ġes Ġel Ġcomponent e ĠView Ġde Ġfragment _ datos _ don aciones , Ċ Ġ* Ġa qui Ġse Ġver ific an Ġlos Ġdatos Ġque Ġse Ġing res en Ġdel Ġusuario Ġy Ġactual iza Ċ Ġ* Ġlos Ġcampos Ġsi Ġel Ġusuario Ġya Ġesta Ġregist rado . Ċ Ġ* Ċ Ġ* Ġ*/ Ċ Ċ class ĠDat os Don aciones Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠDat os Don aciones Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠDat os Don aciones VM Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġval Ġm Auth : ĠFirebase Auth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠ Ġprivate Ġval Ġusuario Ġ= Ġm Auth . currentUser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Datos Don aciones Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbase Datos : ĠFirebase Database ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Datos Don aciones Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSe Ġactual iz an Ġlos Ġcampos Ġsi Ġel Ġusuario Ġya Ġesta Ġregist rado ĊĠĠĠĠĠĠĠ Ġbase Datos Ġ= ĠFirebase . database ĊĠĠĠĠĠĠĠ Ġif ( usuario Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Reference Ġ= Ġbase Datos . getReference (" Usuarios /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Reference . add Value EventListener ( object : ĠValue EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusuario Firebase Ġ= Ġsnapshot . child ( usuario . uid ). getValue ( Usuario :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . nombre EditText . setText ( usuario . displayName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . corre o EditText Email . setText ( usuario . email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . gener o EditText . setText ( usuario Firebase ?. gener o ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . telefono EditText Phone . setText ( usuario Firebase ?. telefono ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . municip io EditText . setText ( usuario Firebase ?. municip io ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . setText ( usuario Firebase ?. fecha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSe Ġre vis an Ġlos Ġeventos ... ĊĠĠĠĠĠĠĠ Ġrespond To T aps () ĊĠĠĠĠĠĠĠ Ġsubscribe To Gender Change () ĊĠĠĠĠĠĠĠ Ġsubscribe To Email Change () ĊĠĠĠĠĠĠĠ Ġsubscribe ToDate Change () ĊĠĠĠĠĠĠĠ Ġsubscribe To PhoneNumber Change () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe To PhoneNumber Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . telefono EditText Phone . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSe Ġde j Ã³ Ġde Ġseleccion ar Ġel Ġcampo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . accept able PhoneNumber ( binding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. telefono EditText Phone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . telefono EditText Phone . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġes cri ba Ġun Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" n Ãºmero Ġde Ġtel Ã© fono Ġcon Ġl ada ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġsubscribe ToDate Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSe ĠaÃ± aden Ġlas Ġdiag on ales ĠautomÃ¡t ic amente Ġal Ġes cri bir Ġla Ġfecha ĊĠĠĠĠĠĠĠ Ġbinding . fecha EditText . add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( binding . fecha EditText . text . toString (). length Ġ== Ġ 2 Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . text . toString (). length Ġ== Ġ 5 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . setText ( binding . fecha EditText . text . toString () +"/ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . setSelection ( binding . fecha EditText . text . toString (). length ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . fecha EditText . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSe Ġde j Ã³ Ġde Ġseleccion ar Ġel Ġcampo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . accept able Date ( binding . fecha EditText . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġes cri ba Ġuna Ġfecha Ġvalid a ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe To Email Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . corre o EditText Email . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSe Ġde j Ã³ Ġde Ġseleccion ar Ġel Ġcampo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . accept able Email ( binding . corre o EditText Email . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . corre o EditText Email . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġes cri ba Ġun Ġcorre o Ġvalid o Ġcon Ġ@ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe To Gender Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . gener o EditText . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSe Ġde j Ã³ Ġde Ġseleccion ar Ġel Ġcampo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . accept able Gender ( binding . gener o EditText . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . gener o EditText . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġes cri ba ĠM Ġpara Ġmas cul ino " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġo ĠF Ġpara Ġf em en ino ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġrespond To T aps () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSe Ġver ifica Ġque Ġtodos Ġlos Ġcampos Ġhan Ġs ido Ġl len ados Ġpara Ġir Ġa ĠPay pal Don ation ĊĠĠĠĠĠĠĠ Ġbinding . don ar Datos Don aciones Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . nombre EditText . text . isEmpty () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fecha EditText . text . isEmpty () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . gener o EditText . text . isEmpty () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . corre o EditText Email . text . isEmpty () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . telefono EditText Phone . text . isEmpty () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . municip io EditText . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġl lene Ġtodos Ġlos Ġcampos Ġde Ġman era Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" correct a .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Action Ġ= ĠDat os Don aciones Directions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action Datos Don aciones To Pay pal Don ation ( args . m onto , Ġargs . titulo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( my Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . ded uc ible Switch . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . ded uc ible Switch . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġ" Por Ġfavor Ġre mit a Ġsus Ġdatos Ġfis ca les Ġal Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" corre o Ġent ream ig os @ di bu j ando . org . mx Ġadj unt ando Ġel Ġcomp rob ante .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }