package Ġpage . sm ir nov . w allest ert est . presentation . detail Ċ Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġkotlinx . coroutines . launch Ċ import Ġpage . sm ir nov . w alle ster . core _ persistence . data . model . Be er Ċ import Ġpage . sm ir nov . w alle ster . core _ ui . presentation . Base Fragment Ċ import Ġpage . sm ir nov . w alle ster . core _ ui . util . setOn Single ClickListener Ċ import Ġpage . sm ir nov . w allest ert est . R Ċ import Ġpage . sm ir nov . w allest ert est . databinding . Fragment Detail Binding Ċ Ċ class ĠDetail Fragment Ġ: ĠBase Fragment < Fragment Detail Binding >( Fragment Detail Binding :: inflate ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġscreen Name : ĠString Ġ= ĠSCREEN _ NAME ĊĠĠĠ Ġoverride Ġval ĠviewModel : ĠDetail ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun Ġsetup View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setup View () ĊĊĠĠĠĠĠĠĠ Ġbinding ?. favorite Iv ?. setOn Single ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . toggle Favorite () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setup ViewModel () ĊĊĠĠĠĠĠĠĠ Ġlaunch Repe ating On ( Lifecycle . State . STARTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĠviewModel . beer . collect (:: show Be er ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinitialize Be er () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Be er () Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments ?. get Parcelable < Be er >( ARG _ BE ER )?. let ( viewModel :: set Be er ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Be er ( beer : ĠBe er ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Tv . text Ġ= Ġbeer . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġal co hol Tv . text Ġ= ĠgetString ( R . string . format _ ab v , Ġbeer . ab v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe bc Tv . text Ġ= ĠgetString ( R . string . format _ ebc , Ġbeer . ebc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi bu Tv . text Ġ= ĠgetString ( R . string . format _ i bu , Ġbeer . i bu ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfavorite Res Id Ġ= Ġif Ġ( beer . is Favorite ) ĠR . drawable . ic _ favorite _ filled Ġelse ĠR . drawable . ic _ favorite _ outline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite Iv . setImage Resource ( favorite Res Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate Toolbar Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġbeer . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSCREEN _ NAME Ġ= Ġ" Detail " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠARG _ BE ER Ġ= Ġ" beer " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( beer : ĠBe er ): ĠDetail Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDetail Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġbundle Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠARG _ BE ER Ġto Ġbeer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ