package Ġcom . dou glas . github auth . module . login Ċ Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġcom . dou glas . github auth . R Ċ import Ġcom . dou glas . github auth . domain . User Log In UseCase Ċ import Ġcom . dou glas . github auth . domain . exception . Empty Field Exception Ċ import Ġcom . dou glas . github auth . domain . exception . Invalid Credential Exception Ċ import Ġcom . dou glas . github auth . domain . exception . Was Not Ab le To Save Credential Exception Ċ import Ġcom . dou glas . github auth . module . base . Base ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLogin ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġuser Log In UseCase : ĠUser Log In UseCase ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġgo To Profile Screen Ġ= ĠMutable LiveData < Boolean >() ĊĊĠĠĠ Ġfun Ġattemp Login ( username : ĠString ?, Ġpassword : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . loading Status . value Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġsuper . subscriptions . add ( user Log In UseCase . log In User ( username , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: on Login Success , Ġthis :: catch Error )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Login Success () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . loading Status . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġgo To Profile Screen . value Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcatch Error ( error : ĠThrowable ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġwhen ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEmpty Field Exception Ġ-> ĠR . string . login _ module _ empty _ field _ error _ msg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInvalid Credential Exception Ġ-> ĠR . string . login _ module _ invalid _ credential _ error _ msg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWas Not Ab le To Save Credential Exception Ġ-> ĠR . string . login _ module _ cant _ save _ credential _ error _ msg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . generic _ error _ message ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . loading Status . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsuper . show ErrorMessage . value Ġ= Ġmsg ĊĠĠĠ Ġ} Ċ }