package Ġcom . example . antic ov id . ui . profile . health _ di ary Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . example . antic ov id . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ health _ di ary .* Ċ import Ġkotlinx . android . synt hetic . main . app _ title _ bar _ with _ back _ bt .* Ċ import Ġjava . util .* Ċ import Ġcom . example . antic ov id . data . model .* Ċ import Ġcom . example . antic ov id . ui . profile . health _ di ary . entry . Health Di ary Entry Activity Ċ Ċ class ĠHealth Di ary Activity Ġ: ĠAppCompatActivity (), ĊĠĠĠ ĠHealth Di ary Entry Recycler Adapter . On Health Di ary Entry ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhealth Di ary ViewModel : ĠHealth Di ary ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ health _ di ary ) ĊĠĠĠĠĠĠĠ Ġthis . support ActionBar ?. hide () ĊĊĠĠĠĠĠĠĠ Ġhealth Di ary ViewModel Ġ= ĠViewModel Provider ( this , ĠHealth Di ary ViewModel Factory ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Health Di ary ViewModel :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Tod ays Entry Completed . observe ( this @ Health Di ary Activity , Ġ{ Ġis Tod ays Entry Completed Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Tod ays Entry Completed ?. let Ġ{ Ġupdate Tod ays Entry Card ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhealth Di ary Entries . observe ( this @ Health Di ary Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhealth Di ary Entries Ġ= Ġit Ġ?: Ġempty List () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( health Di ary Entries . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious _ entries _ header . text Ġ= ĠgetString ( R . string . no _ previous _ entries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( health _ di ary _ entries _ recycler _ view . adapter Ġas ĠHealth Di ary Entry Recycler Adapter ). update Entries List ( health Di ary Entries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Tod ays Entry Card ( is Tod ays Entry Completed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Tod ays Entry Completed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry _ date . set Compound Draw ables Relative With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ baseline _ check _ circle _ 2 4 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry _ info . text Ġ= ĠgetString ( R . string . health _ di ary _ entry _ completed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry _ date . set Compound Draw ables Relative With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ baseline _ add _ circle _ 2 4 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry _ info . text Ġ= ĠgetString ( R . string . complete _ health _ di ary _ entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġback _ bt . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġentry _ date . text Ġ= Ġformat Date ( Calendar . getInstance (). time ) ĊĊĠĠĠĠĠĠĠ Ġadd _ new _ entry . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Health Di ary Entry Activity () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhealth _ di ary _ entries _ recycler _ view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( this @ Health Di ary Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠHealth Di ary Entry Recycler Adapter ( this @ Health Di ary Activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Health Di ary Entry Click ( entry : ĠHealth Di ary Entry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Health Di ary Entry Activity ( entry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Health Di ary Entry Activity ( entry : ĠHealth Di ary Entry ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠHealth Di ary Entry Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( HE ALTH _ DI ARY _ ENTRY _ KEY , Ġentry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠHE ALTH _ DI ARY _ ENTRY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHE ALTH _ DI ARY _ ENTRY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( data !!. get Serializable Extra ( HE ALTH _ DI ARY _ ENTRY _ KEY ) Ġas ? ĠHealth Di ary Entry )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhealth Di ary ViewModel . save Entry ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }