package Ġcom . j ag an . sp end anal ay ser . ui . budget Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . j ag an . sp end anal ay ser . data . db . entity . Budget Ċ import Ġcom . j ag an . sp end anal ay ser . data . repo . Budget Repo Ċ import Ġcom . j ag an . sp end anal ay ser . model . B ud getItem Ċ import Ġcom . j ag an . sp end anal ay ser . ui . base . Base ViewModel Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠBudget ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġbudget Repo : ĠBudget Repo ) Ġ: ĠBase ViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbudget SetUp Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġprivate Ġval Ġbudget Ġ= ĠMutable LiveData < Mutable List < B ud getItem >>() ĊĊĠĠĠ Ġfun ĠsetUp Budget ( month : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Repo . add OrUpdate Budget ( month ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget SetUp . post Value ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch Budget ( month : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbudget List Ġ= Ġbudget Repo . getActive Budget ( month ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget . post Value ( budget List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Budget SetUp (): ĠLive Data < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbudget SetUp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Budget (): ĠLive Data < Mutable List < B ud getItem >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbudget ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Budget ( budget List : ĠMutable List < B ud getItem >) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbudget Ġ= Ġmutable ListOf < Budget >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplanned Amount Ġ= Ġ( it . pl anned Amount ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbudget . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBudget ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Ġ= Ġit . month , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Id Ġ= Ġit . categoryId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplanned Amount Ġ= Ġplanned Amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Repo . update Budget ( budget ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ