package Ġbr . com . fi ere ck . acade m ia . ui . work out . edit Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . view Models Ċ import Ġbr . com . fi ere ck . acade m ia . R Ċ import Ġbr . com . fi ere ck . acade m ia . databinding . Work out Edit Activity Binding Ċ Ċ private Ġconst Ġval ĠKEY _ ID _ WORK OUT Ġ= Ġ" key _ id _ work out " Ċ Ċ class ĠWork out Edit Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠWork out Edit Activity Binding ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠWork out Edit ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġid Work out : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠWork out Edit Activity Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġbinding . root ĊĠĠĠĠĠĠĠ ĠsetContentView ( view ) ĊĊĠĠĠĠĠĠĠ Ġid Work out Ġ= Ġintent . extras ?. getString ( KEY _ ID _ WORK OUT ) Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Work out ( id Work out ) ĊĠĠĠĠĠĠĠ Ġsetup Observer s () ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= ĠgetString ( R . string . edit _ work out ) ĊĊĠĠĠĠĠĠĠ Ġbinding . button Save . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . edit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Work out , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit Name Work out . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit Description Work out . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtimestamp (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSystem . currentTimeMillis () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . work out Model LiveData . observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit Description Work out . setText ( it . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit Name Work out . setText ( it . name Work out ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . error LiveData . observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġit , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . success Edit Work out LiveData . observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . error Edit Work out LiveData . observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġit , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }