package Ġorg . fo ss as ia . open event . general Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . plus Assign Ċ import Ġorg . fo ss as ia . open event . general . auth . Auth Holder Ċ import Ġorg . fo ss as ia . open event . general . auth . Auth Service Ċ import Ġorg . fo ss as ia . open event . general . auth . Request Password Reset Ċ import Ġorg . fo ss as ia . open event . general . auth . forgot . Password Reset Ċ import Ġorg . fo ss as ia . open event . general . common . Single Live Event Ċ import Ġorg . fo ss as ia . open event . general . data . Preference Ċ import Ġorg . fo ss as ia . open event . general . data . Resource Ċ import Ġorg . fo ss as ia . open event . general . event . NEW _ NOTIFICATION S Ċ import Ġorg . fo ss as ia . open event . general . notification . Notification Service Ċ import Ġorg . fo ss as ia . open event . general . settings . Settings Service Ċ import Ġorg . fo ss as ia . open event . general . utils . Http Errors Ċ import Ġorg . fo ss as ia . open event . general . utils . extensions . with Default Schedulers Ċ import Ġretrofit 2 . HttpException Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠStartup ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġpreference : ĠPreference , ĊĠĠĠ Ġprivate Ġval Ġresource : ĠResource , ĊĠĠĠ Ġprivate Ġval Ġauth Holder : ĠAuth Holder , ĊĠĠĠ Ġprivate Ġval Ġauth Service : ĠAuth Service , ĊĠĠĠ Ġprivate Ġval Ġnotification Service : ĠNotification Service , ĊĠĠĠ Ġprivate Ġval Ġsettings Service : ĠSettings Service Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĠĠĠ Ġval Ġmutable New Notifications Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġnew Notifications : ĠLive Data < Boolean > Ġ= Ġmutable New Notifications ĊĠĠĠ Ġprivate Ġval Ġmutable Dialog Progress Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġdialog Progress : ĠLive Data < Boolean > Ġ= Ġmutable Dialog Progress ĊĠĠĠ Ġprivate Ġval Ġmutable Is Refresh Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġis Refresh : ĠLive Data < Boolean > Ġ= Ġmutable Is Refresh ĊĠĠĠ Ġprivate Ġval Ġmutable Reset Password Email Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġreset Password Email : ĠLive Data < String > Ġ= Ġmutable Reset Password Email ĊĠĠĠ Ġprivate Ġval Ġmutable Message Ġ= ĠSingle Live Event < String >() ĊĠĠĠ Ġval Ġmessage : ĠSingle Live Event < String > Ġ= Ġmutable Message ĊĊĠĠĠ Ġfun Ġis LoggedIn () Ġ= Ġauth Holder . is LoggedIn () ĊĊĠĠĠ Ġfun ĠgetId () Ġ= Ġauth Holder . getId () ĊĊĠĠĠ Ġfun Ġsync Notifications () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is LoggedIn ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġnotification Service . sync Notifications ( getId ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Default Schedulers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . is Read ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . put Boolean ( NEW _ NOTIFICATION S , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable New Notifications . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( auth Holder . is LoggedIn () Ġ&& Ġit . code () Ġ== ĠHttp Errors . UN AUTHORIZ ED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogout And Refresh () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it , Ġ" Error Ġfetching Ġnotifications ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogout And Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġauth Service . logout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Default Schedulers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Is Refresh . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it , Ġ" Error Ġwhile Ġlogout ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Message . value Ġ= Ġresource . getString ( R . string . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck And Reset ( token : ĠString , Ġnew Password : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreset Request Ġ= ĠRequest Password Reset ( Password Reset ( token , Ġnew Password )) ĊĠĠĠĠĠĠĠ Ġif Ġ( auth Holder . is LoggedIn ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġauth Service . logout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Default Schedulers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Dialog Progress . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Password ( reset Request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset Password ( reset Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Password ( reset Request : ĠRequest Password Reset ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġauth Service . reset Password ( reset Request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Default Schedulers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Dialog Progress . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. do Finally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Dialog Progress . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Message . value Ġ= Ġresource . getString ( R . string . reset _ password _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Reset Password Email . value Ġ= Ġit . email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it , Ġ" Failed Ġto Ġreset Ġpassword ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġsettings Service . fetch Settings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Default Schedulers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Settings Ġfetched Ġsuccessfully ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it , Ġ" Error Ġin Ġfetching Ġsettings Ġform ĠAPI ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ