/* Ċ Ġ* Ġ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 . put ty Ċ Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . material . Content Alpha Ċ import Ġandroidx . compose . material . Divider Ċ import Ġandroidx . compose . material . Local Content Alpha Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġcom . example . android dev challenge . data . Put ty Ċ import Ġcom . example . android dev challenge . data . put ty 1 Ċ import Ġcom . example . android dev challenge . data . put ty s Ċ import Ġcom . example . android dev challenge . ui . Screen Ċ import Ġcom . example . android dev challenge . ui . The med Preview Ċ import Ġcom . example . android dev challenge . ui . theme . purple 7 0 0 Ċ Ċ @ Preview (" Put ty Preview ") Ċ @ Composable Ċ fun ĠPut ty Preview () Ġ{ ĊĠĠĠ ĠThe med Preview Ġ{ ĊĠĠĠĠĠĠĠ ĠPost Card History ( put ty Ġ= Ġput ty 1 ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Put ty Ġscreen Ġbody ") Ċ @ Composable Ċ fun ĠPreview Put ty Screen Body () Ġ{ ĊĠĠĠ ĠThe med Preview Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts Ġ= Ġput ty s ĊĠĠĠĠĠĠĠ ĠPost List ( posts , Ġ{}, Ġset Of (), Ġ{}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠPut ty Screen ( ĊĠĠĠ Ġnavigate To : Ġ( Screen ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠThe med Preview Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts Ġ= Ġput ty s ĊĠĠĠĠĠĠĠ ĠPost List ( posts , Ġnavigate To , Ġset Of (), Ġ{}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠPost List ( ĊĠĠĠ Ġposts : ĠList < Put ty >, ĊĠĠĠ Ġnavigate To : Ġ( Screen ) Ġ-> ĠUnit , ĊĠĠĠ Ġfavor ites : ĠSet < String >, ĊĠĠĠ Ġon Toggle Favorite : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠLazy Column ( modifier Ġ= Ġmodifier ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĠPut ty Body ( posts , Ġnavigate To Ġ= Ġnavigate To ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThe ĠPut ty Ġscreen . Ċ Ġ*/ Ċ @ Composable Ċ fun ĠPut ty Body ( put ty : ĠList < Put ty >, Ġnavigate To : Ġ( Screen ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠ Ġput ty . forEach Ġ{ Ġpost Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPost Card History ( post , Ġnavigate To Ġ= Ġnavigate To ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPost List Divider () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠFull - width Ġdivider Ġwith Ġpadding Ġfor Ġ[ Post List ] Ċ Ġ*/ Ċ @ Composable Ċ private Ġfun ĠPost List Divider () Ġ{ ĊĠĠĠ ĠDiv ider ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 1 4 . dp ), ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Surface . copy ( alpha Ġ= Ġ 0 . 0 8 f ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠPost Card History ( put ty : ĠPut ty , Ġnavigate To : Ġ( Screen ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To ( Screen . Detail S ( put ty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPost Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ty Ġ= Ġput ty , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( end Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠColumn ( Modifier . weight ( 1 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPost Title ( put ty Ġ= Ġput ty ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB reed And Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ty Ġ= Ġput ty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( top Ġ= Ġ 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠPost Image ( put ty : ĠPut ty , Ġmodifier : ĠModifier Ġ= ĠModifier ) Ġ{ ĊĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( put ty . image Id ), ĊĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , Ġ// Ġdecor ative ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 6 0 . dp , Ġ 6 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Material Theme . shapes . medium ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠPost Title ( put ty : ĠPut ty ) Ġ{ ĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠ Ġput ty . name , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . subtitle 1 , ĊĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 2 0 . sp , ĊĠĠĠĠĠĠĠ Ġcolor Ġ= Ġpur ple 7 0 0 ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠB reed And Location ( ĊĠĠĠ Ġput ty : ĠPut ty , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠRow ( modifier ) Ġ{ ĊĠĠĠĠĠĠĠ ĠComp osition Local Provider ( Local Content Alpha Ġprovides ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Style Ġ= ĠMaterial Theme . typography . body 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( Modifier . weight ( 1 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġput ty . bre ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġtext Style ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġput ty . location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġtext Style ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ