package Ġcom . quick blo x . sample . conference . kotlin . presentation . screens . login Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . quick blo x . core . exception . QB Response Exception Ċ import Ġcom . quick blo x . sample . conference . kotlin . domain . Domain Callback Ċ import Ġcom . quick blo x . sample . conference . kotlin . domain . chat . Chat Manager Ċ import Ġcom . quick blo x . sample . conference . kotlin . domain . user . UN AUTHORIZ ED _ CODE Ċ import Ġcom . quick blo x . sample . conference . kotlin . domain . user . User Manager Ċ import Ġcom . quick blo x . sample . conference . kotlin . presentation . LiveData Ċ import Ġcom . quick blo x . sample . conference . kotlin . presentation . screens . base . Base ViewModel Ċ import Ġcom . quick blo x . sample . conference . kotlin . presentation . screens . login . ViewState . Companion . ERROR Ċ import Ġcom . quick blo x . users . model . QB User Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠIn jo it Ġin Ġ 2 0 2 1 - 0 9 - 3 0 . Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 1 ĠQuick blo x . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ @ H ilt ViewModel Ċ class ĠLogin ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġuser Manager : ĠUser Manager , Ġprivate Ġval Ġchat Manager : ĠChat Manager ) Ġ: ĠBase ViewModel () Ġ{ ĊĠĠĠ Ġval Ġlive Data Ġ= ĠLive Data < Pair < Int , ĠAny ? >>() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Manager . clear User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsign In ( login : ĠString , ĠfullName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ViewState . PROGRESS , Ġnull )) ĊĊĠĠĠĠĠĠĠ Ġuser Manager . signIn ( login , ĠfullName , Ġobject Ġ: ĠDomain Callback < QB User , ĠException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠQ B User , Ġbundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin To Chat ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( error Ġas ĠQ B Response Exception ). http StatusCode Ġ== ĠU NA UTH ORIZ ED _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign Up ( login , ĠfullName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ViewState . ERROR , Ġerror . message )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsign Up ( login : ĠString , ĠfullName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Manager . sign Up ( login , ĠfullName , Ġobject Ġ: ĠDomain Callback < QB User ?, ĠException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠQ B User ?, Ġbundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign In ( login , ĠfullName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ViewState . ERROR , Ġerror . message )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin To Chat ( user : ĠQ B User ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ViewState . PROGRESS , Ġnull )) ĊĠĠĠĠĠĠĠ Ġchat Manager . login To Chat ( user , Ġobject Ġ: ĠDomain Callback < Unit , ĠException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit , Ġbundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ViewState . SHOW _ MAIN _ SCREEN , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . setValue ( Pair ( ERROR , Ġerror . message )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }