package Ġla ure ny ew . pet ad opt sample app . ui . features . details Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġla ure ny ew . pet ad opt sample app . utils . collect As State Lifecycle Aware Ċ Ċ @ Android EntryPoint Ċ class ĠPet Details Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdetails ViewModel : ĠPet Details ViewModel Ġby Ġview Models () ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanimal Id Ġ= Ġintent . getString Extra ( AN IMAL _ ID _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" Invalid ĠPet ĠDetail ! ĠNo ĠAnimal ĠID Ġspecified .") ĊĠĠĠĠĠĠĠ Ġdetails ViewModel . set Animal Id ( animal Id ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimal Ġ= Ġdetails ViewModel . animal State . collect As State Lifecycle Aware ( initial Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPet Details Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimal State Ġ= Ġanimal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item F avor ited Ġ= Ġ{ Ġis F avor ited Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is F avor ited ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails ViewModel . favorite () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails ViewModel . un favorite () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAN IMAL _ ID _ KEY Ġ= Ġ" animal _ id " ĊĠĠĠ Ġ} Ċ }