package Ġbr . ue a . trans i rie . my pay . my pay template 2 . ui . cad astro Ċ Ċ import Ġandroid . util . Log Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . model . Est abe lec imento Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . model . Usuario Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . room . App Database Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . room . Est abe lec imento Repository Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . room . Usuario Repository Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . sqlite . COLUMN _ EMAIL Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . sqlite . COLUMN _ NO ME _ F ANT AS IA Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . sqlite . TABLE _ EST AB E LE C IM ENTO Ċ import Ġbr . ue a . trans i rie . my pay . my pay template 2 . repository . sqlite . TABLE _ US U ARIO Ċ import Ġcom . google . firebase . firestore . k tx . firestore Ċ import Ġcom . google . firebase . k tx . Firebase Ċ Ċ class ĠC ad astro Est abe lec imento E Usuario ViewModel ( app Database : ĠApp Database ){ ĊĠĠĠ Ġprivate Ġval Ġest abe lec imento Repository Ġ= ĠEst abe lec imento Repository ( app Database ) ĊĠĠĠ Ġprivate Ġval Ġusuario Repository Ġ= ĠUsuario Repository ( app Database ) ĊĠĠĠ Ġprivate Ġval Ġdb Ġ= ĠFirebase . firestore ĊĠĠĠ Ġprivate Ġval Ġest abe lec imento Ref Ġ= Ġdb . collection ( TABLE _ EST AB E LE C IM ENTO ) ĊĠĠĠ Ġprivate Ġval Ġuser Ref Ġ= Ġdb . collection ( TABLE _ US U ARIO ) ĊĠĠĠ Ġprivate Ġval Ġlog tag Ġ= Ġ" CAD AST RO _ VIEW _ MODEL " ĊĊĠĠĠ Ġfun Ġsave Est abe lec imento ( data Est abe lec imento : ĠEst abe lec imento ) Ġ= ĊĠĠĠĠĠĠĠ Ġest abe lec imento Repository . insert ( data Est abe lec imento ) ĊĊĠĠĠ Ġfun Ġdelete Est abe lec imento ( est abe lec imento : ĠEst abe lec imento ) Ġ= ĊĠĠĠĠĠĠĠ Ġest abe lec imento Repository . delete ( est abe lec imento ) ĊĊĠĠĠ Ġfun Ġupdate Usuario ( data Usuario : ĠUsuario ) Ġ= Ġusuario Repository . update ( data Usuario ) ĊĊĠĠĠ Ġfun Ġupdate Est ab ( data Est ab : Est abe lec imento ) Ġ= Ġest abe lec imento Repository . update ( data Est ab ) ĊĊĠĠĠ Ġfun Ġsave Usuario ( data Usuario : Usuario ) Ġ= ĊĠĠĠĠĠĠĠ Ġusuario Repository . insert ( data Usuario ) ĊĊĠĠĠ Ġfun Ġemail Ja Em U so Local mente ( email : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġusuario Repository . email Ja Em uso ( email ) Ċ Ċ // ĠĠĠ Ġfun Ġc np j Ja Em U so Firebase ( c np j : ĠString , Ġcallback : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" In ici ando Ġver ificaÃ§Ã£o Ġdo Ġc np j Ġno Ġfirebase ...") Ċ //// ĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" CN PJ Ġa Ġpro cur ar : Ġ$ c np j ") Ċ // Ċ // ĠĠĠĠĠĠĠ Ġest abe lec imento Ref . where EqualTo ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠCOLUMN _ CN PJ , Ġc np j Ċ // ĠĠĠĠĠĠĠ Ġ). get (). add On Success Listener Ġ{ Ġdocument Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Ver ificaÃ§Ã£o Ġdo Ġc np j Ġno Ġfirebase Ġcomplet a .") Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( document . metadata . is From Cache ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Dados Ġdo Ġcache ĠsÃ£o Ġdesc art ados Ġpo is Ġpodem ĠnÃ£o Ġestar Ġatual izados .") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc np j Ja Em U so Ġ= Ġ! document . isEmpty Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsim Ou N ao Ġ= Ġif Ġ( c np j Ja Em U so ) Ġ" Sim " Ġelse Ġ" NÃ£o " Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" CN PJ ĠjÃ¡ ĠestÃ¡ Ġem Ġuso ? Ġ$ sim Ou N ao ") Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( c np j Ja Em U so ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ Ġexception Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Erro Ġno Ġfirebase : Ġ${ exception . message }") Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġemail Ja Em U so Firebase ( email : ĠString , Ġcallback : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" In ici ando Ġver ificaÃ§Ã£o Ġdo Ġemail Ġno Ġfirebase ...") Ċ // ĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Email Ġa Ġpro cur ar : Ġ$ email ") ĊĊĠĠĠĠĠĠĠ Ġuser Ref . where EqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCOLUMN _ EMAIL , Ġemail ĊĠĠĠĠĠĠĠ Ġ). get (). add On Success Listener Ġ{ Ġdocument Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Ver ificaÃ§Ã£o Ġdo Ġemail Ġno Ġfirebase Ġcomplet a .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( document . metadata . is From Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Dados Ġdo Ġcache ĠsÃ£o Ġdesc art ados Ġpo is Ġpodem ĠnÃ£o Ġestar Ġatual izados .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ja Em U so Ġ= Ġ! document . isEmpty ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsim Ou N ao Ġ= Ġif Ġ( email Ja Em U so ) Ġ" Sim " Ġelse Ġ" NÃ£o " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Email ĠjÃ¡ ĠestÃ¡ Ġem Ġuso ? Ġ$ sim Ou N ao ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( email Ja Em U so ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Erro Ġno Ġfirebase : Ġ${ exception . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnome Ja Em U so Firebase ( nome : ĠString , Ġcallback : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" In ici ando Ġver ificaÃ§Ã£o Ġdo Ġnome Ġno Ġfirebase ...") Ċ // ĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Nome Ġa Ġpro cur ar : Ġnome ") ĊĊĠĠĠĠĠĠĠ Ġest abe lec imento Ref . where EqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCOLUMN _ NO ME _ F ANT AS IA , Ġnome ĊĠĠĠĠĠĠĠ Ġ). get (). add On Success Listener Ġ{ Ġdocument Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Ver ificaÃ§Ã£o Ġdo Ġnome Ġno Ġfirebase Ġcomplet a .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( document . metadata . is From Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Dados Ġdo Ġcache ĠsÃ£o Ġdesc art ados Ġpo is Ġpodem ĠnÃ£o Ġestar Ġatual izados .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnome Ja Em U so Ġ= Ġ! document . isEmpty ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsim Ou N ao Ġ= Ġif Ġ( nome Ja Em U so ) Ġ" Sim " Ġelse Ġ" NÃ£o " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log tag , Ġ" Nome ĠjÃ¡ ĠestÃ¡ Ġem Ġuso ? Ġ$ sim Ou N ao ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( nome Ja Em U so ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( log tag , Ġ" Erro Ġno Ġfirebase : Ġ${ exception . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ