/* Ċ Ġ* Ġ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 Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Box Ċ 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 Height Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . offset Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . foundation . layout . wrap Content Width Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . Lazy List State Ċ import Ġandroidx . compose . foundation . lazy . items Indexed Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Card Ċ 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 . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . material . icons . filled . Location On Ċ import Ġandroidx . compose . material . icons . filled . P ets Ċ import Ġandroidx . compose . material . icons . outlined . Favorite Ċ import Ġandroidx . compose . material . icons . outlined . Favorite Border Ċ import Ġandroidx . compose . material . icons . outlined . Female Ċ import Ġandroidx . compose . material . icons . outlined . Male Ċ import Ġandroidx . compose . material . icons . outlined . P ets Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . mutable State ListOf Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . draw . scale Ċ import Ġandroidx . compose . ui . draw . shadow Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . Text Unit Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . compose . Nav Host Ċ import Ġandroidx . navigation . compose . comp osable Ċ import Ġandroidx . navigation . compose . navigate Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . example . android dev challenge . ui . theme . My Theme Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy App () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠP up py ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġb reed : ĠString , ĊĠĠĠ Ġval Ġdescription : ĠString , ĊĠĠĠ Ġval Ġgender : ĠString , ĊĠĠĠ Ġval Ġlocation : ĠString , ĊĠĠĠ Ġval Ġfilename : ĠInt , ĊĠĠĠ Ġval Ġage : ĠInt Ġ= Ġ 8 Ċ ) Ċ Ċ val Ġp up p ies Ġ= ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Cost el lo ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Chi hu ah ua ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . cost el lo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" Los ĠB an os , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Cost el lo Ġis Ġa Ġvery Ġfriendly Ġand Ġhand some Ġdog Ġthat Ġneeds Ġa Ġhome . ĠHe Ġis Ġgood Ġwith Ġpeople , Ġchildren , Ġand Ġother Ġdo gs Ġbut Ġwill Ġch ase Ġcats . ĠCost el lo Ġpref ers Ġto Ġbe Ġa Ġhouse dog . ĠIf Ġyou Ġleave Ġhim Ġout Ġhe Ġwill Ġtry Ġto Ġescape . ĠHe Ġshould Ġgo Ġto Ġa Ġhome Ġwhere Ġthere Ġis Ġat Ġleast Ġone Ġother Ġfriendly Ġdog ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Pr in cess ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Ger man ĠShe ph erd ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . pr in cess , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Female ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" L ath rop , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Pr in cess Ġis Ġabout Ġ 6 Ġto Ġ 7 Ġmonths Ġold . ĠShe Ġwas Ġtaken Ġin Ġfrom Ġa Ġperson Ġwith Ġtoo Ġmany Ġdo gs . ĠShe Ġis Ġa Ġbit Ġon Ġthe Ġsh y Ġside Ġat Ġfirst , Ġbut Ġshe Ġis Ġvery Ġsweet Ġonce Ġshe Ġis Ġcomfort able . ĠShe Ġis Ġa Ġbeautiful Ġyoung Ġg irl Ġwho Ġneeds Ġa Ġchance Ġto Ġb loss om ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" B ron son ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Si ber ian ĠH us ky ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . br on son , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" L ind say , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" B ron son Ġis Ġa Ġst unning Ġh us ky Ġp up Ġwith Ġp ier cing Ġblue Ġeyes . ĠHe Ġis Ġgoing Ġto Ġbe Ġa Ġlarge Ġad ult . ĠWe Ġwill Ġrequire Ġb reed Ġexperience Ġfor Ġhis Ġa do ption ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Fin lay ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Lab rad or ĠRetrie ver ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . fin lay , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" Mode sto , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Fin lay Ġis Ġa ĠBrown Ġlab Ġp up py Ġand Ġvery Ġactive . ĠHe Ġis Ġgood Ġwith Ġpeople . ĠHe Ġmay Ġneed Ġintroduction s Ġwith Ġother Ġdo gs , Ġbut Ġis Ġusually Ġgood Ġwith Ġfriendly Ġdo gs . ĠWe Ġavoid ĠFin lay Ġaround Ġdo gs Ġthat Ġmay Ġnot Ġhave Ġfriendly , Ġand Ġcal m Ġor Ġplay ful Ġpersonal ities . ĠFin lay Ġhas Ġhad Ġsome Ġtraining ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Pan ama ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" P it ĠB ull ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . pan ama , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Female ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" Vis alia , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Great Ġwith Ġk ids , Ġdo gs Ġ& Ġcats . ĠPot ty Ġtraining / crate Ġtraining Ġin Ġprogress , Ġdoing Ġgreat ! ĠR ides Ġwell Ġin Ġthe Ġcar . ĠShe Ġlo ves Ġto Ġplay Ġwith Ġother Ġdo gs ! ĠFast Ġle arner , Ġtreat Ġ& Ġto y Ġmot iv ated . ĠSuper Ġsweet , Ġlo ving , Ġsocial , Ġfriendly Ġ& Ġplay ful ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Char les ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Border ĠCol lie ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . char les , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" L ind say , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Char les Ġis Ġa Ġvery Ġsoft Ġher ding Ġmix Ġp up py . ĠHe Ġwill Ġdo Ġbest Ġin Ġa Ġhome Ġwith Ġanother Ġdog Ġthat Ġcan Ġhelp Ġhim Ġgain Ġconfidence ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" B ella ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" C air n ĠTer rier ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . b ella , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Female ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" Par lier , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" B ella ĠSk ye Ġis Ġa Ġfriendly Ġg irl Ġand Ġwould Ġlove Ġto Ġfind Ġa Ġhome Ġwith Ġpl enty Ġof Ġroom Ġto Ġrun . ĠShe Ġdoes Ġenjoy Ġplaying Ġwith Ġother Ġdo gs , Ġthis Ġlittle Ġl ady Ġis Ġall Ġfun Ġand Ġgames . ĠShe Ġlo ves Ġto ys , Ġespecially Ġs que aky Ġto ys Ġshe Ġis Ġsweet , Ġcu dd ly , Ġh ilar ious Ġand Ġlo ves Ġto Ġgive Ġk is ses . ĠThere Ġis Ġnothing ĠB ella ĠSk ye Ġlikes Ġmore Ġthan Ġa Ġnice Ġbel ly Ġrub !" ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" S cout ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" C attle ĠDog ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . s cout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" F res no , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Me et ĠS cout ! ĠAppro x imately Ġ 3 Ġmonths Ġold Ġand Ġprobably Ġa Ġa ustr alian Ġc attle Ġdog . ĠL ov ing Ġand Ġsmart ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Ro ssi ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Staff ord sh ire ĠTer rier ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . ross i , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Female ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" C ant ua ĠC reek , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" She Ġlo ves Ġpeople Ġand Ġplays Ġwith Ġthe Ġother Ġdo gs Ġin Ġher Ġf oster Ġhome . ĠJust Ġlike Ġany Ġp up py Ġshe Ġis Ġlearning Ġthe Ġbasics , Ġ' no Ġb ite ', Ġ' sit ', Ġ' br ing Ġme Ġthe Ġto y '. ĠShe Ġis Ġa Ġsweet Ġg irl Ġand Ġeager Ġto Ġlearn Ġand Ġplease . ĠP up p ies Ġtake Ġa Ġlot Ġof Ġtime Ġand Ġpat ience , Ġand ĠRo ssi Ġis Ġno Ġdifferent . ĠShe Ġhas Ġp up py Ġenergy Ġthat Ġcould Ġwe ar Ġdown Ġa Ġ 3 rd Ġgrade Ġclass room Ġso Ġlots Ġand Ġlots Ġof Ġplay time Ġis Ġneeded ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠP up py ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Cour age ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Ġ= Ġ" Gold en ĠRetrie ver ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= ĠR . raw . cour age , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" Clo vis , ĠCA ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Cour age Ġis Ġjust Ġa Ġp up py . ĠHowever Ġhe Ġwill Ġbe Ġa Ġbig Ġboy Ġonce Ġfull Ġg rown . ĠWe Ġbelieve Ġhim Ġto Ġbe Ġa ĠGold en Ġretrie ver Ġmix Ġ. ĠHe Ġneeds Ġa Ġunderstanding Ġfamily Ġwith Ġlots Ġof Ġtime Ġand Ġpat ience . ĠA Ġfamily Ġwho Ġwill Ġtake Ġhim Ġto Ġtraining Ġclasses Ġand Ġhelp Ġhim Ġbe Ġa Ġstrong Ġconf ident Ġdog . ĠCour age Ġneeds Ġa Ġhome Ġwith Ġno Ġsmall Ġchildren , Ġhowever Ġolder Ġwell Ġmanner ed Ġchildren Ġis Ġok . ĠHe Ġis Ġgood Ġwith Ġdo gs Ġbig Ġand Ġsmall Ġwith Ġproper Ġintroduction ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ Ċ @ Composable Ċ fun ĠMy App () Ġ{ ĊĠĠĠ Ġval Ġnav Controller Ġ= Ġremember Nav Controller () ĊĠĠĠ Ġ// Ġfor Ġret aining Ġscroll Ġposition Ġon Ġnav Ġchange ĊĠĠĠ Ġval Ġlist State Ġ= Ġremember Lazy List State () ĊĠĠĠ Ġval Ġfavor ites Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State ListOf < Int >() ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtoggle Favorite Ġ= Ġ{ Ġindex : ĠInt Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( favorites . contains ( index )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavor ites . remove ( index ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavor ites . add ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġis Favorite Ġ= Ġ{ Ġindex : ĠInt Ġ-> ĊĠĠĠĠĠĠĠ Ġfavor ites . contains ( index ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠNav Host ( nav Controller Ġ= Ġnav Controller , Ġstart Destination Ġ= Ġ" home ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcomp osable (" home ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHome ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Favorite ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcomp osable (" detail /{ index }") Ġ{ Ġback Stack Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDetail ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġback Stack Entry . arguments ?. getString (" index ") !!. toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Favorite ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠStart Ġbuilding Ġyour Ġapp Ġhere ! Ċ @ Composable Ċ fun ĠHome ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ Ġlist State : ĠLazy List State , ĊĠĠĠ Ġis Favorite : Ġ( Int ) Ġ-> ĠBoolean , ĊĠĠĠ Ġtoggle Favorite : Ġ( Int ) Ġ-> ĠBoolean Ċ ) Ġ{ ĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( modifier Ġ= ĠModifier . padding ( 1 8 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( content Color Ġ= ĠColor ( 2 2 4 , Ġ 1 6 7 , Ġ 3 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Filled . P ets , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( 3 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A dopt Ġyour Ġnext \ nb est Ġfriend ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight ( 8 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( vertical Ġ= Ġ 1 2 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ Ġinner Padding Ġ-> ĊĠĠĠĠĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( top Start Ġ= Ġ 2 4 . dp , Ġtop End Ġ= Ġ 2 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. shadow ( 2 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Material Theme . colors . secondary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( inner Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 8 . dp , Ġend Ġ= Ġ 1 8 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġlist State ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Indexed ( pup p ies ) Ġ{ Ġindex , Ġp up py Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 8 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠMaterial Theme . colors . background , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 1 6 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( 2 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( route Ġ= Ġ" detail /$ index ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= Ġp up py . filename ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRo unded Corner Shape ( 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. width ( 1 0 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 1 1 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp up py . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 6 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( pup py . bre ed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ pup py . gender }, Ġ${ pup py . age } Ġmonths Ġold ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Secondary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 4 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( top Ġ= Ġ 1 2 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġp up py . location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 4 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġis Favorite ( index ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Favorite Ġ= Ġ{ Ġtoggle Favorite ( index ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . offset ( x Ġ= Ġ( 1 2 ). dp , Ġy Ġ= Ġ(- 1 2 ). dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDetail ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ Ġindex : ĠInt , ĊĠĠĠ Ġis Favorite : Ġ( Int ) Ġ-> ĠBoolean , ĊĠĠĠ Ġtoggle Favorite : Ġ( Int ) Ġ-> ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġval Ġp up py Ġ= Ġremember Ġ{ Ġp up p ies [ index ] Ġ} ĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( modifier Ġ= ĠModifier . fill Max Width ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ Ġnav Controller . navigate ( route Ġ= Ġ" home ") Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Filled . Arrow Back , Ġcontent Description Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġis Favorite ( index ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Favorite Ġ= Ġ{ Ġtoggle Favorite ( index ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . weight ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . padding ( 1 8 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Bottom ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp up py . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . weight ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( content Color Ġ= ĠMaterial Theme . colors . on Surface ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= Ġif Ġ( pup py . gender Ġ== Ġ" Male ") ĠIcons . Outlined . Male Ġelse ĠIcons . Outlined . Female , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . scale ( 1 . 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( modifier Ġ= ĠModifier . padding ( vertical Ġ= Ġ 6 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( pup py . bre ed , Ġmodifier Ġ= ĠModifier . weight ( 1 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ pup py . age } Ġmonths Ġold ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Width ( Alignment . End ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġp up py . location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 5 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( bottom Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( modifier Ġ= ĠModifier . weight ( 1 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= Ġp up py . filename ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( 1 6 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. shadow ( 1 6 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( vertical Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" About ", Ġstyle Ġ= ĠMaterial Theme . typography . h 6 , ĠfontWeight Ġ= ĠFontWeight ( 8 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp up py . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . body 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Secondary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( x Ġ= Ġ 1 8 . dp , Ġy Ġ= Ġ 1 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( top Start Ġ= Ġ 2 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 2 4 . dp , Ġvertical Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . End ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( content Color Ġ= ĠColor . White , Ġcolor Ġ= ĠColor . Transparent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Outlined . P ets , Ġcontent Description Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 1 8 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" AD OPT ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 6 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . White ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠLocation ( location : ĠString , ĠfontSize : ĠText Unit , Ġmodifier : ĠModifier Ġ= ĠModifier ) Ġ{ ĊĠĠĠ ĠSurface ( ĊĠĠĠĠĠĠĠ Ġcontent Color Ġ= ĠColor . Red , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRow ( vertical Alignment Ġ= ĠAlignment . Center Vert ically ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Filled . Location On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( end Ġ= Ġ 3 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( x Ġ= Ġ(- 3 ). dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( location , Ġcolor Ġ= ĠMaterial Theme . colors . on Secondary , ĠfontSize Ġ= ĠfontSize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠF avorite Icon ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġis Favorite : ĠBoolean , ĊĠĠĠ Ġtoggle Favorite : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠIcon Button ( ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġtoggle Favorite () Ġ}, ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Width ( Alignment . End ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSurface ( content Color Ġ= Ġif Ġ( is Favorite ) ĠColor . Red Ġelse ĠMaterial Theme . colors . on Surface ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= Ġif Ġ( is Favorite ) ĠIcons . Outlined . Favorite Ġelse ĠIcons . Outlined . Favorite Border , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Light ĠTheme ", Ġwidth Dp Ġ= Ġ 3 6 0 , Ġheight Dp Ġ= Ġ 6 4 0 ) Ċ @ Composable Ċ fun ĠLight Preview () Ġ{ ĊĠĠĠ ĠMy Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠMy App () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Dark ĠTheme ", Ġwidth Dp Ġ= Ġ 3 6 0 , Ġheight Dp Ġ= Ġ 6 4 0 ) Ċ @ Composable Ċ fun ĠDark Preview () Ġ{ ĊĠĠĠ ĠMy Theme ( dark Theme Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy App () ĊĠĠĠ Ġ} Ċ } Ċ