/* Ċ Ġ* Ġ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 . home Ċ Ċ import Ġandroidx . compose . foundation . Border Stroke Ċ import Ġandroidx . compose . foundation . border Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . items Indexed Ċ import Ġandroidx . compose . foundation . shape . Circle Shape Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Card Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . rounded . Female Ċ import Ġandroidx . compose . material . icons . rounded . Male Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . example . android dev challenge . model . Gender Ċ import Ġcom . example . android dev challenge . model . Pet Ċ import Ġcom . example . android dev challenge . ui . common . Pet Adapt ion AppBar Ċ import Ġcom . example . android dev challenge . ui . pet Detail . Fav Button Ċ import Ġcom . example . android dev challenge . ui . theme . Pet Theme Ċ import Ġcom . example . android dev challenge . ui . theme . primary Color Ċ import Ġcom . example . android dev challenge . ui . utils . Network Image Ċ Ċ @ Composable Ċ fun ĠPet List ( ĊĠĠĠ Ġp ets : ĠList < Pet >, ĊĠĠĠ Ġselect Pet : Ġ( Long ) Ġ-> ĠUnit , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠLazy Column ( modifier ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPet Adapt ion AppBar () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 6 . dp )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitems Indexed ( pe ts ) Ġ{ Ġ_, Ġpet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPet Item ( pet , Ġselect Pet ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠPet Item ( pet : ĠPet , Ġselect Pet : Ġ( Long ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġicon Vector Ġ= Ġif Ġ( pet . gender Ġ== ĠGender . Male ) ĠIcons . Rounded . Male Ġelse ĠIcons . Rounded . Female ĊĠĠĠ ĠCard ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( onClick Ġ= Ġ{ Ġselect Pet ( pet . id ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ), ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġprimary Color , ĊĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 1 . dp , ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠBorder Stroke ( 1 . dp , ĠColor . Light Gray ), ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( top Start Ġ= Ġ 5 0 . dp , Ġbottom Start Ġ= Ġ 5 0 . dp , Ġtop End Ġ= Ġ 8 . dp , Ġbottom End Ġ= Ġ 8 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Center Vert ically ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġpet . image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ" Pet Ġimage ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 1 0 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Circle Shape ) Ġ// ĠRo unded Corner Shape ( percent Ġ- Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. border ( 2 . dp , ĠColor . Transparent , ĠCircle Shape ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . width ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Center Vert ically ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Center Vert ically ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġpet . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= Ġicon Vector , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= ĠMaterial Theme . colors . primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( bottom Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" B reed : Ġ${ pet . bre ed }", Ġstyle Ġ= ĠMaterial Theme . typography . body 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Age : Ġ${ pet . age } Ġmonths ", Ġstyle Ġ= ĠMaterial Theme . typography . body 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( horizontal Alignment Ġ= ĠAlignment . Center H orizontally ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF av Button () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Light ĠTheme ", Ġwidth Dp Ġ= Ġ 3 6 0 , Ġheight Dp Ġ= Ġ 6 4 0 ) Ċ @ Composable Ċ fun ĠLight Preview () Ġ{ ĊĠĠĠ ĠPet Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠPet Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpet Ġ= ĠPet ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Max ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Male , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Box er ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenergy Level Ġ= Ġ" High ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ" Large " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Pet Ġ= Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ