package Ġcom . github . jobs . android . ui . jobs Ċ Ċ import Ġandroid . arch . lifecycle . LiveData Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġcom . github . jobs . android . data . DataManager Ċ import Ġcom . github . jobs . android . data . model . api . jobs . Jobs Response Ċ import Ġcom . github . jobs . android . data . remote . Callback Wrapper Ċ import Ġcom . github . jobs . android . utils . rx . Scheduler Provider Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠJobs List ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġdata Manager : ĠData Manager , Ġprivate Ġval Ġscheduler Provider : ĠScheduler Provider ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġvar Ġjobs List : ĠMutable LiveData < List < Jobs Response >> ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġget Jobs (): ĠLive Data < List < Jobs Response >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( jobs List Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjobs List Ġ= ĠMutable LiveData () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Jobs () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġjobs List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Jobs () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( data Manager . get Jobs Api Call (). subscribe On ( scheduler Provider . io ()). observe On ( scheduler Provider . ui ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( object Ġ: ĠCallback Wrapper < List < Jobs Response >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠList < Jobs Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjobs List !!. value Ġ= Ġt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( any : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhandle Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . dispose () ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠ Ġ} Ċ }