/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . example . android dev challenge . ui . pup py _ detail Ċ Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . IconButton Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . material . icons . filled . Star Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . lifecycle . view model . compose . viewModel Ċ import Ġcom . example . android dev challenge . data . model . P up py Ċ import Ġcom . example . android dev challenge . ui . theme . My Theme Ċ import Ġcom . example . android dev challenge . ui . util . Local Navigator Ċ Ċ @ Composable Ċ fun ĠP up py Detail Screen ( id : ĠInt ) Ġ{ ĊĠĠĠ Ġval ĠviewModel Factory Ġ= ĠP up py Detail ViewModel . Factory ( id ) ĊĠĠĠ Ġval ĠviewModel Ġ= ĠviewModel ( P up py Detail ViewModel :: class . java , Ġfactory Ġ= ĠviewModel Factory ) ĊĠĠĠ Ġval Ġnavigator Ġ= ĠLocal Navigator . current ĊĊĠĠĠ Ġval Ġp up py Ġby ĠviewModel . pup py . collect As State () ĊĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĠP up py Detail Top Bar ( onClick Back Ġ= Ġ{ Ġnavigator . navigate Back () Ġ}) Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠP up py Detail Content ( pup py ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠP up py Detail Top Bar ( onClick Back : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĠText (" Compose ĠP up p ies ") Ġ}, ĊĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ ĠonClick Back () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Arrow Back , Ġcontent Description Ġ= Ġ" Back ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠP up py Detail Content ( pup py : ĠP up py ) Ġ{ ĊĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . padding ( 1 6 . dp )) Ġ{ ĊĠĠĠĠĠĠĠ ĠRow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġp up py . icon , Ġstyle Ġ= ĠMaterial Theme . typography . h 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 8 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġp up py . name , Ġstyle Ġ= ĠMaterial Theme . typography . h 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 3 2 . dp )) ĊĊĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Bottom ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Age : Ġ", Ġstyle Ġ= ĠMaterial Theme . typography . h 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġp up py . age , Ġstyle Ġ= ĠMaterial Theme . typography . body 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 8 . dp )) ĊĊĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Bottom ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Gender : Ġ", Ġstyle Ġ= ĠMaterial Theme . typography . h 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġp up py . gender , Ġstyle Ġ= ĠMaterial Theme . typography . body 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 6 . dp )) ĊĊĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Star , Ġcontent Description Ġ= Ġ" A dopt ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" A dopt ", Ġstyle Ġ= ĠMaterial Theme . typography . subtitle 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Dark ĠTheme ", Ġwidth Dp Ġ= Ġ 3 6 0 ) Ċ @ Composable Ċ fun ĠLight P up py Detail Content () Ġ{ ĊĠĠĠ ĠMy Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠSurface ( color Ġ= ĠMaterial Theme . colors . background ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP up py Detail Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp up py Ġ= ĠP up py ( 1 , Ġ" ðŁ Ĳ ¶ ", Ġ" Luc y ", Ġ" 7 ĠYear s Ġ 3 Ġmonth ", Ġ" Female ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Dark ĠTheme ", Ġwidth Dp Ġ= Ġ 3 6 0 ) Ċ @ Composable Ċ fun ĠDark P up py Row () Ġ{ ĊĠĠĠ ĠMy Theme ( dark Theme Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSurface ( color Ġ= ĠMaterial Theme . colors . background ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP up py Detail Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp up py Ġ= ĠP up py ( 1 , Ġ" ðŁ Ĳ ¶ ", Ġ" Luc y ", Ġ" 7 ĠYear s Ġ 3 Ġmonth ", Ġ" Female ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ