/* čĊ Ġ* ĠCopyright Ġ 2 0 2 1 ĠDaniel ĠGu ger čĊ Ġ* čĊ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); čĊ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . čĊ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat čĊ Ġ* čĊ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 čĊ Ġ* čĊ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware čĊ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , čĊ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . čĊ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand čĊ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . čĊ Ġ*/ čĊč Ċ package Ġat . gu ger . money book . ui . home . accounts . detail čĊč Ċ import Ġandroidx . lifecycle . LiveData č Ċ import Ġandroidx . lifecycle . Mutable LiveData č Ċ import Ġandroidx . lifecycle . ViewModel č Ċ import Ġandroidx . lifecycle . viewModel Scope č Ċ import Ġat . gu ger . money book . core . ui . view model . Event č Ċ import Ġat . gu ger . money book . data . model . Account č Ċ import Ġat . gu ger . money book . data . model . Transaction č Ċ import Ġat . gu ger . money book . data . repository . Accounts Repository č Ċ import Ġat . gu ger . money book . data . repository . Transactions Repository č Ċ import Ġkotlinx . coroutines . launch č Ċ import Ġjava . time . LocalDate čĊč Ċ /** čĊ Ġ* Ġ[ ViewModel ] Ġfor Ġthe Ġ[ Account Detail Fragment ]. čĊ Ġ*/ č Ċ class ĠAccount Detail ViewModel ( čĊĠĠĠ Ġprivate Ġval Ġtransactions Repository : ĠTransactions Repository , čĊĠĠĠ Ġprivate Ġval Ġaccounts Repository : ĠAccounts Repository , čĊĠĠĠ Ġprivate Ġval ĠaccountId : ĠLong č Ċ ) Ġ: ĠViewModel () Ġ{ čĊčĊĠĠĠ Ġ// region ĠVariables čĊčĊĠĠĠ Ġprivate Ġval Ġ_ account Ġ= ĠMutable LiveData < Account >() čĊĠĠĠ Ġval Ġaccount : ĠLive Data < Account > Ġ= Ġ_ account čĊčĊĠĠĠ Ġval Ġtransactions : ĠLive Data < List < Transaction >> čĊĠĠĠ Ġval Ġtransaction Months : ĠLive Data < List < LocalDate >> čĊčĊĠĠĠ Ġprivate Ġval Ġ_ show Add Edit Transaction Dialog Fragment Ġ= ĠMutable LiveData < Event < Account >>() čĊĠĠĠ Ġval Ġshow Add Edit Transaction Dialog Fragment : ĠLive Data < Event < Account >> Ġ= Ġ_ show Add Edit Transaction Dialog Fragment čĊčĊĠĠĠ Ġ// endregion čĊčĊĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ account . value Ġ= Ġaccounts Repository . get ( accountId ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġtransactions Ġ= Ġtransactions Repository . getBy Account ( accountId ) čĊĠĠĠĠĠĠĠ Ġtransaction Months Ġ= Ġtransactions Repository . getBy Account Monthly ( accountId ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// region ĠMethods čĊčĊĠĠĠ Ġfun Ġtransactions By Month ( month : ĠLocalDate ): ĠLive Data < List < Transaction >> Ġ= Ġtransactions Repository . getBy Account Month ( accountId , Ġmonth ) čĊčĊĠĠĠ Ġfun Ġshow Add Edit Transaction Dialog Fragment () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ show Add Edit Transaction Dialog Fragment . value Ġ= ĠEvent ( account . value !! ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdelete ( var arg Ġtransaction : ĠTransaction ) Ġ{ čĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransactions Repository . delete (* transaction ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// endregion č Ċ }