/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 . google . samples . apps . sun flower . plant detail Ċ Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . compose . foundation . Text Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . wrap Content Width Ċ 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 . li ved ata . observe As State Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Context Ambient Ċ import Ġandroidx . compose . ui . res . dimension Resource Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġandroidx . ui . tool ing . preview . Preview Ċ import Ġcom . google . samples . apps . sun flower . R Ċ import Ġcom . google . samples . apps . sun flower . data . Plant Ċ import Ġcom . google . samples . apps . sun flower . view models . Plant Detail ViewModel ĊĊ Ċ @ Composable Ċ fun ĠPl ant Detail Description ( plant Detail ViewModel : ĠPl ant Detail ViewModel ) Ġ{ ĊĠĠĠ Ġ// ĠOb serves Ġvalues Ġcoming Ġfrom Ġthe ĠVM 's ĠLive Data < Plant > Ġfield ĊĠĠĠ Ġval Ġplant Ġby Ġplant Detail ViewModel . plant . observe As State () ĊĊĠĠĠ Ġ// ĠIf Ġplant Ġis Ġnot Ġnull , Ġdisplay Ġthe Ġcontent ĊĠĠĠ Ġplant ?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠPl ant Detail Content ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠPl ant Detail Content ( plant : ĠPl ant ) Ġ{ ĊĠĠĠ ĠSurface Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( Modifier . padding ( dimension Resource ( R . dim en . margin _ normal ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPl ant Name ( plant . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPl ant Water ing ( plant . water ing Interval ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPl ant Description ( plant . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠPl ant Name ( name : ĠString ) Ġ{ ĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġdimension Resource ( R . dim en . margin _ small )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Width ( Alignment . Center H orizontally ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ private Ġfun ĠPl ant Detail Content Preview () Ġ{ ĊĠĠĠ Ġval Ġplant Ġ= ĠPl ant (" id ", Ġ" Apple ", Ġ" description ", Ġ 3 , Ġ 3 0 , Ġ"") ĊĠĠĠ ĠMaterial Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠPl ant Detail Content ( plant ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠPl ant Water ing ( water ing Interval : ĠInt ) Ġ{ ĊĠĠĠ ĠColumn ( Modifier . fill Max Width ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSame Ġmodifier Ġused Ġby Ġboth ĠText s ĊĠĠĠĠĠĠĠ Ġval Ġcenter With Padding Modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġdimension Resource ( R . dim en . margin _ small )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. gravity ( Alignment . Center H orizontally ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnormal Padding Ġ= Ġdimension Resource ( R . dim en . margin _ normal ) ĊĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġstring Resource ( R . string . water ing _ needs _ prefix ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . primary Variant , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Bold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġcenter With Padding Modifier . padding ( top Ġ= Ġnormal Padding ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwater ing Interval Text Ġ= ĠContext Ambient . current . resources . get Quantity String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . plurals . water ing _ needs _ suffix , Ġwater ing Interval , Ġwater ing Interval ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġwater ing Interval Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġcenter With Padding Modifier . padding ( bottom Ġ= Ġnormal Padding ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun Ġremember TextView (): ĠTextView Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠContext Ambient . current ĊĠĠĠ Ġreturn Ġremember Ġ{ ĊĠĠĠĠĠĠĠ ĠTextView ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠPl ant Description ( description : ĠString ) Ġ{ ĊĠĠĠ Ġval ĠtextView Ġ= Ġremember TextView () ĊĊĠĠĠ Ġval Ġhtml Description Ġ= Ġremember ( description ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHtml Compat . from Html ( description , ĠHtml Compat . FROM _ HTML _ MODE _ COMP ACT ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠAndroid View ({ ĠtextView Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġit . text Ġ= Ġhtml Description ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ private Ġfun ĠPl ant Description Preview () Ġ{ ĊĠĠĠ ĠMaterial Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠPl ant Description (" HTML < br >< br > description ") ĊĠĠĠ Ġ} Ċ } Ċ