package Ġcom . ces ar wil ly mc . movie . presentation . auth ent ificacion ĊĊ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . ces ar wil ly mc . movie . base . Base ViewModel Ċ import Ġcom . ces ar wil ly mc . movie . data . repo . Auth Repo Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠAuth ViewModel ( private Ġval Ġrepo : ĠAuth Repo ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ state User Ġ= ĠMutable LiveData < Auth ViewState >() ĊĠĠĠ Ġval Ġstate User : ĠLive Data < Auth ViewState > Ġget () Ġ= Ġ_ state User ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ_ data User : ĠString ĊĠĠĠ Ġval Ġdata User Ġget () Ġ= Ġ_ data User ĊĠĠĠ Ġfun Ġupdate Text User ( User : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( User . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( User . length Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state User . post Value ( Auth ViewState . User Suc ces ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data User Ġ= ĠUser . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state User . post Value ( Auth ViewState . User Error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state User . post Value ( Auth ViewState . User Empty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġ_ state Pass Ġ= ĠMutable LiveData < Auth ViewState >() ĊĠĠĠ Ġval Ġstate Pass : ĠLive Data < Auth ViewState > Ġget () Ġ= Ġ_ state Pass ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ_ data Pass : ĠString ĊĠĠĠ Ġval Ġdata Pass Ġget () Ġ= Ġ_ data Pass ĊĠĠĠ Ġfun Ġupdate Text Pass User ( Pass : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Pass . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Pass . length Ġ> Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Pass . post Value ( Auth ViewState . Pass Suc ces ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data Pass Ġ= ĠPass . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Pass . post Value ( Auth ViewState . Pass Error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Pass . post Value ( Auth ViewState . Pass Empty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġ_ state Login Ġ= ĠMutable LiveData < Auth ViewState >() ĊĠĠĠ Ġval Ġstate Login : ĠLive Data < Auth ViewState > Ġget () Ġ= Ġ_ state Login ĊĠĠĠ Ġvar Ġmessage Error ="" ĊĠĠĠ Ġfun ĠsendMessage Logged () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Login . post Value ( Auth ViewState . Loading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrepo . signIn ( data User , Ġdata Pass ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . code == 2 0 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Login . post Value ( Auth ViewState . Complete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Error = Ġresponse . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Login . post Value ( Auth ViewState . Error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Error = Ġe . message ? :" Error Ġdes con oc ido " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Login . post Value ( Auth ViewState . Error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Stop ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ state Login . post Value ( null ) ĊĠĠĠ Ġ} Ċ }