/* Ċ Ġ* Ġ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 Ċ Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . animation . core . animate Float As State Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġcom . example . android dev challenge . repository . Pet ts Repository Ċ import Ġcom . example . android dev challenge . ui . theme . My Theme Ċ import Ġdev . chr is ban es . ac comp an ist . in sets . Local Window Insets Ċ Ċ @ Experimental Animation Api Ċ @ Composable Ċ fun ĠDetail Screen ( ĊĠĠĠ Ġpet ts Repository : ĠPet ts Repository , ĊĠĠĠ Ġid : ĠString , ĊĠĠĠ Ġnav Host Controller : ĠNav Controller ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġval Ġlist State Ġ= Ġremember Lazy List State () ĊĠĠĠ Ġval Ġalpha : ĠFloat Ġby Ġanimate Float As State ( if Ġ( list State . first Visible Item Index Ġ== Ġ 0 Ġ&& Ġlist State . first Visible Item Scroll Offset Ġ< ĠMain Application . get Screen Width () Ġ* Ġ 0 . 7 f ) Ġ 0 f Ġelse Ġ 1 f ) ĊĠĠĠ Ġval Ġp ett Ġ= Ġpet ts Repository . pet ts . first Ġ{ Ġit . id Ġ== Ġid Ġ} ĊĠĠĠ Ġval Ġis Lik ed Ġ= Ġremember Ġ{ Ġmutable State Of ( pet ts Repository . is Lik ed ( pe tt )) Ġ} ĊĠĠĠ ĠSurface Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinset Height Ġ= ĠMain Application . px To Dp ( Local Window Insets . current . status Bars . top ) ĊĠĠĠĠĠĠĠ ĠPet Info ( pe tt , Ġis Lik ed . value , Ġlist State ) Ġ{ Ġis Lik ed . value Ġ= Ġpet ts Repository . toggle Like ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Theme . colors . surface . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġalpha ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( in set Height . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMy Top AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġalpha , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġp ett . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgo Up Ġ= Ġ{ Ġnav Host Controller ?. pop Back Stack () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠBottom Bar () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Animation Api Ċ @ Preview (" Light ĠTheme ", Ġwidth Dp Ġ= Ġ 7 2 0 , Ġheight Dp Ġ= Ġ 1 9 8 0 ) Ċ @ Composable Ċ fun ĠDetail Screen Light Preview () Ġ{ ĊĠĠĠ ĠMy Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠDetail Screen ( Pet ts Repository (), Ġ" 1 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Animation Api Ċ @ Preview (" Dark ĠTheme ", Ġwidth Dp Ġ= Ġ 7 2 0 , Ġheight Dp Ġ= Ġ 1 9 8 0 ) Ċ @ Composable Ċ fun ĠDetail Screen Dark Preview () Ġ{ ĊĠĠĠ ĠMy Theme ( dark Theme Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDetail Screen ( Pet ts Repository (), Ġ" 1 ") ĊĠĠĠ Ġ} Ċ } Ċ