package Ġtech . so it . quiet . ui . activity . user . view model Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġtech . so it . quiet . repository . net ease . Net ease Repository Ċ import Ġtech . so it . quiet . utils . testing . Open ForTesting Ċ Ċ @ Open ForTesting Ċ class ĠLogin ViewModel ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnet ease Repository : ĠNet ease Repository Ġ= ĠNet ease Repository . instance Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġlogin Ġto Ġnet ease ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlogin ( phone : ĠString ?, Ġpassword : ĠString ?): ĠLogin Result Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( phone Ġ== Ġnull Ġ|| Ġpassword Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLogin Result ( false , Ġ" ç©º è¾ĵåħ¥ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnet ease Repository . login ( phone , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Result ( true , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Result ( false , Ġe . message Ġ?: Ġ" Unknown ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġdata Ġclass ĠLogin Result ( val Ġis Success : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg : ĠString ?) Ċ Ċ }