package Ġcom . ad wi . pex wall papers . ui . favorites Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . ad wi . pex wall papers . data . local . entity . Wall paper Ċ import Ġcom . ad wi . pex wall papers . data . repository . interfaces . F avorites Repository Interface Ċ import Ġcom . ad wi . pex wall papers . di . Io Dispatcher Ċ import Ġcom . ad wi . pex wall papers . ui . base . Base ViewModel Ċ import Ġcom . ad wi . pex wall papers . util . on Dispatcher Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . flow . Sharing Started Ċ import Ġkotlinx . coroutines . flow . state In Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠF avorites ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠF avorites Repository Interface , ĊĠĠĠ Ġ@ Io Dispatcher Ġprivate Ġval Ġio Dispatcher : ĠCor outine Dispatcher Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġfavor ites Ġ= Ġget F avorites () ĊĠĠĠĠĠĠĠ Ġ. state In ( viewModel Scope , ĠSh aring Started . L az ily , Ġnull ) ĊĊĠĠĠ Ġfun ĠonDelete All F avorites () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Dispatcher ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . reset All F avorites () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget F avorites () Ġ= Ġrepository . getAll F avorites () ĊĊĠĠĠ Ġfun Ġon Favorite Click ( wall paper : ĠWall paper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwall paper . is Favorite Ġ= Ġ! wall paper . is Favorite ĊĠĠĠĠĠĠĠ Ġon Dispatcher ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . update F avorites ( wall paper ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }