package Ġbr . com . jo a ogo es . ui . home Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġbr . com . jo a ogo es . data . use case . Get Revision Items UseCase Ċ import Ġbr . com . jo a ogo es . data . use case . Save Revision Item UseCase Ċ import Ġbr . com . jo a ogo es . model . Revision Item Model Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠHome ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġget Revision Items : ĠGet Revision Items UseCase , ĊĠĠĠ Ġprivate Ġval Ġsave Revision Item : ĠSave Revision Item UseCase Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġview State Ġ= ĠMutable LiveData < Home ViewState >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Re visions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Re visions () Ġ{ ĊĠĠĠĠĠĠĠ Ġview State . post Value ( Home ViewState . Loading ) ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Revision Items () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġview State . post Value ( Home ViewState . Success ( it )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ Ġerror Ġ-> Ġview State . post Value ( Home ViewState . Error ( error . message )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Revision ( revision Item : ĠRevision Item Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview State . post Value ( Home ViewState . Loading ) ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Revision Item ( revision Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġget Re visions () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ Ġview State . post Value ( Home ViewState . Error ( it . message )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }