/* Ċ Ġ* Ġ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 . fid lo o . flux . presentation . ui . home . hourly Ċ Ċ import Ġandroidx . compose . animation . animate Content Size Ċ import Ġandroidx . compose . foundation . horizontal Scroll Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . remember Scroll State Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġcom . fid lo o . flux . domain . model . Hour Weather Ċ import Ġcom . fid lo o . flux . domain . model . Hour ly Weather Ċ import Ġcom . fid lo o . flux . domain . model . Hour ly Weather Curve Points Ċ import Ġcom . fid lo o . flux . domain . model . Hour ly Weather Type Ċ import Ġcom . fid lo o . flux . domain . model . Weather Fact s Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . Date Ċ Ċ @ Composable Ċ fun ĠHour ly Weather Chart ( ĊĠĠĠ Ġhourly Weather : ĠHour ly Weather , ĊĠĠĠ Ġselected Time : ĠDate , ĊĠĠĠ Ġon Weather Time Selected : Ġ( Date ) Ġ-> ĠUnit , ĊĠĠĠ Ġexpanded : ĠBoolean , ĊĠĠĠ Ġtype : ĠHour ly Weather Type Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscroll State Ġ= Ġremember Scroll State () ĊĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. horizontal Scroll ( scroll State ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . animate Content Size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHour ly Weather Curve ( hourly Weather , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHour ly Weather Chart Horizontal Axis Description ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhourly Weather , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Weather Time Selected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ fun ĠHour ly Weather Chart Preview () Ġ{ ĊĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠ Ġcalendar [ Calendar . HOUR _ OF _ DAY ] Ġ= Ġ 0 ĊĠĠĠ Ġcalendar [ Calendar . MINUTE ] Ġ= Ġ 0 ĊĠĠĠ Ġcalendar [ Calendar . SECOND ] Ġ= Ġ 0 ĊĠĠĠ Ġcalendar [ Calendar . MILLI SECOND ] Ġ= Ġ 0 ĊĊĠĠĠ Ġval Ġweather Per Hour Ġ= Ġ( 1 .. 1 0 ). map Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . HOUR , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠHour Weather ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġcalendar . time , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfacts Ġ= ĠWeather Fact s . Default . copy ( temperature Ġ= Ġindex . toFloat ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġitem Ġ= ĠHour ly Weather ( ĊĠĠĠĠĠĠĠ Ġweather Per Hour Ġ= Ġweather Per Hour , ĊĠĠĠĠĠĠĠ Ġhourly Weather Curve Points Ġ= ĠHour ly Weather Curve Points () ĊĠĠĠ Ġ) ĊĠĠĠ ĠHour ly Weather Chart ( item , ĠDate (), Ġ{}, Ġtrue , ĠHour ly Weather Type . Temperature ) Ċ } Ċ