package Ġcom . gre yl abs . tod ot od ay . screens . tasks Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġcom . gre yl abs . tod ot od ay . base . Progress State Ċ import Ġcom . gre yl abs . tod ot od ay . data . Testing Repository Ċ import Ġcom . gre yl abs . tod ot od ay . data . db . App Database Ċ import Ġcom . gre yl abs . tod ot od ay . screens . tasks . data _ model . Task DataModel Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . plus Assign Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠTasks Activity ViewModel ( private Ġval Ġapp Database : ĠApp Database ) Ġ: ĠViewModel (), ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġtext : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġvar Ġtasks : ĠMutable LiveData < Mutable List < Task DataModel >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġvar Ġprogress State : ĠMutable LiveData < Progress State > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġvar Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ RE SU ME ) ĊĠĠĠ Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables Ġ+= ĠObservable . from Callable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . get Task Dao (). getAll () ĊĠĠĠĠĠĠĠ Ġ}. do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress State . post Value ( Progress State . Loading ()) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ tasks From Db Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . post Value ( tasks From Db . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTask DataModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . fromString ( it . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress State . post Value ( Progress State . Done ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ error Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress State . post Value ( Progress State . Error ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Tasks Text (): ĠMutable LiveData < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Tasks (): ĠMutable LiveData < Mutable List < Task DataModel >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtasks ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Progress State (): ĠMutable LiveData < Progress State > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprogress State ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . dispose () ĊĠĠĠ Ġ} Ċ }