package Ġcom . np ace . rpt log . track Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġcom . np ace . rpt log . di . DependencyInjection Ċ import Ġcom . np ace . rpt log . model . Exercise Repository Ċ import Ġcom . np ace . rpt log . model . entity . Weight Set Ċ import Ġcom . np ace . rpt log . model . entity . Work out Entry Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġlub o Ġon Ġ 2 / 3 / 2 0 1 8 . Ċ Ġ*/ Ċ class ĠTrack Work out ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġexercise Repository : ĠExercise Repository ĊĊĠĠĠ Ġprivate Ġval Ġwork out Entries Ġ= Ġmutable ListOf < Work out Entry >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠDependency Injection . inject Global Scope ( this ) ĊĠĠĠĠĠĠĠ Ġexercise Repository . getAll Ex ercises () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġexercises Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 .. 4 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwork out Entries . add ( Work out Entry ( it , Ġ( 1 .. 3 ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeight Set ( 4 Ġ* Ġit , Ġ 2 0 0 Ġ/ Ġit . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Work out Entries (): ĠList < Work out Entry > Ġ= Ġwork out Entries ĊĊĠĠĠ Ġfun Ġadd Entry ( entry : ĠWork out Entry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwork out Entries . add ( entry ) ĊĠĠĠ Ġ} Ċ Ċ }