/* Ċ Ġ* Ġ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 . land scape Ċ Ċ import Ġandroidx . compose . animation . Cross fade Ċ import Ġandroidx . compose . animation . core . Linear Out Slow In E asing Ċ import Ġandroidx . compose . animation . core . Mutable Transition State Ċ import Ġandroidx . compose . animation . core . animate Float Ċ import Ġandroidx . compose . animation . core . t ween Ċ import Ġandroidx . compose . animation . core . update Transition Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . layout . Box With Constraints Ċ import Ġandroidx . compose . foundation . layout . fill Max Height Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . offset Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . save able . remember Save able Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . geometry . Offset Ċ import Ġandroidx . compose . ui . graphics . Blend Mode Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Color Filter Ċ import Ġandroidx . compose . ui . graphics . Shadow Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . platform . Local Density Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . unit . Constraints Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġandroidx . constraint layout . compose . Constraint Layout Ċ import Ġcom . fid lo o . flux . domain . model . Current Weather Ċ import Ġcom . fid lo o . flux . domain . model . Weather State Ċ import Ġcom . fid lo o . flux . presentation . R Ċ import Ġcom . fid lo o . flux . presentation . ui . home . Home ViewModel Ċ import Ġcom . fid lo o . flux . presentation . ui . particle . Particles Ċ import Ġcom . fid lo o . flux . presentation . ui . particle . rain Parameters Ċ import Ġcom . fid lo o . flux . presentation . ui . particle . snow Parameters Ċ import Ġcom . fid lo o . flux . presentation . ui . theme . white Ċ import Ġcom . fid lo o . flux . presentation . ui . utils . getDescription Res Ċ import Ġcom . google . ac comp an ist . in sets . status Bars Padding Ċ import Ġjava . util . Calendar Ċ Ċ @ Composable Ċ fun ĠDynamic Weather Section ( ĊĠĠĠ Ġcurrent Weather : ĠCurrent Weather , ĊĠĠĠ ĠviewModel : ĠHome ViewModel Ċ ) Ġ{ ĊĠĠĠ ĠBox With Constraints ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height ( 0 . 4 f ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDynamic Weather Land scape ( current Weather , Ġconstraints , ĠviewModel ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDynamic Weather Land scape ( ĊĠĠĠ Ġweather : ĠCurrent Weather , ĊĠĠĠ Ġconstraints : ĠConstraints , ĊĠĠĠ ĠviewModel : ĠHome ViewModel Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġnight Tint Alpha Ġby Ġremember Save able Ġ{ Ġmutable State Of ( 0 f ) Ġ} ĊĠĠĠ Ġvar Ġbackground Layer 2 Alpha Ġby Ġremember Save able Ġ{ Ġmutable State Of ( 0 f ) Ġ} ĊĠĠĠ Ġval Ġheight Ġ= Ġconstraints . max Height ĊĠĠĠ Ġval Ġwidth Ġ= Ġconstraints . maxWidth ĊĊĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠ Ġcalendar . time Ġ= ĠviewModel . old Selected Weather Time ĊĊĠĠĠ Ġval Ġold TimeIn Min Ġ= Ġcalendar [ Calendar . HOUR _ OF _ DAY ] Ġ* ĠMIN UTES _ PER _ HOUR Ġ+ ĊĠĠĠĠĠĠĠ Ġcalendar [ Calendar . MINUTE ] ĊĠĠĠ Ġcalendar . time Ġ= Ġweather . time ĊĠĠĠ Ġval Ġnew TimeIn Min Ġ= Ġcalendar [ Calendar . HOUR _ OF _ DAY ] Ġ* ĠMIN UTES _ PER _ HOUR Ġ+ ĊĠĠĠĠĠĠĠ Ġcalendar [ Calendar . MINUTE ] ĊĊĠĠĠ Ġval Ġcurrent State Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable Transition State ( Animated Time Jump Progress . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġtarget State Ġ= ĠAnimated Time Jump Progress . END Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtransition Ġ= Ġupdate Transition ( currentState ) ĊĊĠĠĠ Ġval Ġtime In Min Ġby Ġtransition . animate Float ( ĊĠĠĠĠĠĠĠ Ġtransition Spec Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= Ġ 9 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeasing Ġ= ĠLinear Out Slow In E asing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ Ġprogress Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ== ĠAnimated Time Jump Progress . START ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold TimeIn Min . toFloat () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew TimeIn Min . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( time In Min Ġ== Ġnew TimeIn Min . toFloat ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . old Selected Weather Time Ġ= Ġweather . time ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠConstraint Layout ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Layer 1 , Ġbackground Layer 2 , Ġmount ain , Ġparticles , Ġclouds , Ġfog , Ġtemperature , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Unit , Ġweather Description ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġcreate Refs () ĊĊĠĠĠĠĠĠĠ Ġval Ġ( sun rise Hour , Ġsun rise Minute ) Ġ= Ġweather . sun rise . split (": ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toFloat () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsun rise At Ġ= Ġsun rise Hour Ġ* Ġ 6 0 Ġ+ Ġsun rise Minute ĊĠĠĠĠĠĠĠ Ġval Ġ( sun set Hour , Ġsun set Minute ) Ġ= Ġweather . sun set . split (": ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toFloat () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsun set At Ġ= Ġsun set Hour Ġ* Ġ 6 0 Ġ+ Ġsun set Minute ĊĊĠĠĠĠĠĠĠ Ġval Ġsun Progress Ġ= Ġ( time In Min Ġ- Ġ( sun rise At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION )) Ġ/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( sun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION ) Ġ- Ġ( sun rise At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION )) ĊĊĠĠĠĠĠĠĠ Ġval Ġnight Elapsed TimeIn Min Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ-> Ġtime In Min Ġ+ ĠMIN UTES _ PER _ DAY Ġ- Ġsun set At ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ> Ġsun set At Ġ-> Ġtime In Min Ġ- Ġsun set At ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmoon Progress Ġ= Ġnight Elapsed TimeIn Min Ġ/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( MIN UTES _ PER _ DAY Ġ- Ġsun set At Ġ+ Ġsun rise At ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( background Layer 1 Image , Ġbackground Layer 2 Image ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> ĠR . drawable . night Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ-> ĠR . drawable . night Ġto ĠR . drawable . sun rise ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> ĠR . drawable . sun rise Ġto ĠR . drawable . day ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> ĠR . drawable . day Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ-> ĠR . drawable . day Ġto ĠR . drawable . sun set ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> ĠR . drawable . sun set Ġto ĠR . drawable . night ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ> Ġsun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> ĠR . drawable . night Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ-> Ġ( sun rise At Ġ- Ġtime In Min ) Ġ/ ĠL AND SC APE _ TRANS ITION _ DURATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( sun rise At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ- Ġtime In Min ) Ġ/ ĠL AND SC APE _ TRANS ITION _ DURATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ- ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ-> Ġ( sun set At Ġ- Ġtime In Min ) Ġ/ ĠL AND SC APE _ TRANS ITION _ DURATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( sun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ- Ġtime In Min ) Ġ/ ĠL AND SC APE _ TRANS ITION _ DURATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ> Ġsun set At Ġ+ ĠL AND SC APE _ TRANS ITION _ DURATION Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmount ain Dark Tint Percent Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ- ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ-> Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun rise At Ġ+ ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ- Ġ( time In Min Ġ- Ġsun rise At Ġ+ ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION ) Ġ/ Ġ( 2 Ġ* ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ- ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ< Ġsun set At Ġ+ ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( time In Min Ġ- Ġsun set At Ġ+ ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION ) Ġ/ Ġ( 2 Ġ* ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Min Ġ> Ġsun set At Ġ+ ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ-> Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnight Tint Alpha Ġ= Ġmount ain Dark Tint Percent Ġ* ĠMO UN TAIN _ T INT _ ALPHA _ MAX ĊĊĠĠĠĠĠĠĠ Ġbackground Layer 2 Alpha Ġ= Ġ 1 Ġ- Ġprogress ĊĊĠĠĠĠĠĠĠ Ġif Ġ( background Layer 1 Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( background Layer 1 Image ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . sky ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( background Layer 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( parent . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( background Layer 2 Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( background Layer 2 Image ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( background Layer 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( parent . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġbackground Layer 2 Alpha ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġimage Size Ġ= Ġwith ( Local Density . current ) Ġ{ Ġ 6 4 . dp . to Px () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġx 2 Ġ= Ġwidth Ġ- Ġimage Size ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġ- 1 Ġ* Ġ( height Ġ+ Ġimage Size ) Ġ/ Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( width Ġ/ Ġ 2 ) Ġ- Ġwidth Ġ- Ġimage Size ) Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( width Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsun X Ġ= Ġ( width Ġ- Ġimage Size ) Ġ* Ġ( 1 Ġ- Ġsun Progress . coerce In ( 0 f , Ġ 1 f )) ĊĠĠĠĠĠĠĠ Ġval Ġsun Y Ġ= Ġa Ġ* Ġ( sun X Ġ- Ġx 2 ) Ġ* Ġsun X Ġ+ Ġheight Ġ- Ġimage Size Ġ- ĠS UN _ BOTTOM _ M ARGIN ĊĊĠĠĠĠĠĠĠ Ġval Ġmoon X Ġ= Ġ( width Ġ- Ġimage Size ) Ġ* Ġ( 1 Ġ- Ġmoon Progress ) ĊĠĠĠĠĠĠĠ Ġval Ġmoon Y Ġ= Ġa Ġ* Ġ( moon X Ġ- Ġx 2 ) Ġ* Ġmoon X Ġ+ Ġheight Ġ- Ġimage Size Ġ- ĠMO ON _ BOTTOM _ M ARGIN ĊĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( R . drawable . sun ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . sun ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġwith ( Local Density . current ) Ġ{ Ġsun X . to Dp () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= Ġwith ( Local Density . current ) Ġ{ Ġsun Y . to Dp () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 6 4 . dp ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( R . drawable . moon ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . moon ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġwith ( Local Density . current ) Ġ{ Ġmoon X . to Dp () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= Ġwith ( Local Density . current ) Ġ{ Ġmoon Y . to Dp () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 6 4 . dp ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġweather State Ġ= Ġweather . hour Weather . state ĊĠĠĠĠĠĠĠ ĠCross fade ( target State Ġ= Ġweather State ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfog Alpha Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . MO ST LY _ CLOUD Y Ġ-> Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . HE AV Y _ R AIN Ġ-> Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . R AIN Ġ-> Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . TH UNDER ST ORM Ġ-> Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . S NOW Ġ-> Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . FO G Ġ-> Ġ 0 . 4 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fog Alpha Ġ> Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Dark Gray . copy ( alpha Ġ= Ġfog Alpha ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( fog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( parent . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparticle Animation Iteration Ġby ĠviewModel . particle Animation Iteration . collect As State () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( weather State Ġ== ĠWeather State . TH UNDER ST ORM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTh under ( particle Animation Iteration , Ġconstraints . maxWidth , Ġconstraints . max Height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( R . drawable . land scape ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . m out ain ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Fill Width , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( mount ain ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( parent . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Filter Ġ= ĠColor Filter . tint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Black . copy ( alpha Ġ= Ġnight Tint Alpha ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlend Mode . Src A top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠCross fade ( target State Ġ= Ġweather State ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpre cip itations Parameters Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . R AIN Ġ-> Ġrain Parameters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . HE AV Y _ R AIN Ġ-> Ġrain Parameters . copy ( particle Count Ġ= Ġ 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . TH UNDER ST ORM Ġ-> Ġrain Parameters . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle Count Ġ= Ġ 2 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Angle Ġ= Ġ 2 6 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Angle Ġ= Ġ 2 9 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . S NOW Ġ-> Ġsnow Parameters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcloud Count Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . R AIN Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . HE AV Y _ R AIN Ġ-> Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . TH UNDER ST ORM Ġ-> Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . S NOW Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . CLEAR _ SK Y Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . FE W _ CLOUD S Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . SC ATTER ED _ CLOUD S Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . MO ST LY _ CLOUD Y Ġ-> Ġ 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather State . FO G Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cloud Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCloud s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. status Bars Padding () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height ( 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( clouds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= ĠColor Filter . tint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Black . copy ( alpha Ġ= Ġnight Tint Alpha ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlend Mode . Src A top ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle Animation Iteration Ġ= Ġparticle Animation Iteration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcloud Count Ġ= Ġcloud Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prec ip itations Parameters Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPart icles ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( particles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( parent . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiteration Ġ= Ġparticle Animation Iteration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġpre cip itations Parameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Shadow Ġ= ĠShadow ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= ĠOffset ( 5 f , Ġ 5 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblur Radius Ġ= Ġ 5 f ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġwhite . copy ( alpha Ġ= Ġ 0 . 8 f ) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġweather . hour Weather . temperature . toInt (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 1 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 6 0 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Ġ= Ġtext Shadow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠtextColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. status Bars Padding () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( temperature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start , Ġmargin Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Â° C ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 1 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Ġ= Ġtext Shadow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠtextColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. status Bars Padding () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( temperature Unit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( temperature . end , Ġmargin Ġ= Ġ 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġstring Resource ( id Ġ= Ġweather State . getDescription Res ()) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Ly on Ġ ĠâĢ¢ Ġ Ġ$ description ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 2 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Normal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Ġ= Ġtext Shadow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠtextColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( weather Description ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( temperature . bottom , Ġmargin Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start , Ġmargin Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠMIN UTES _ PER _ HOUR Ġ= Ġ 6 0 Ċ private Ġconst Ġval ĠHO UR S _ PER _ DAY Ġ= Ġ 2 4 Ċ private Ġconst Ġval ĠMIN UTES _ PER _ DAY Ġ= ĠMIN UTES _ PER _ HOUR Ġ* ĠHO UR S _ PER _ DAY Ċ private Ġconst Ġval ĠL AND SC APE _ TRANS ITION _ DURATION Ġ= Ġ 4 5 Ċ private Ġconst Ġval ĠMO UN TAIN _ T INT _ TRANS ITION _ DURATION Ġ= Ġ 8 0 Ċ private Ġconst Ġval ĠS UN _ BOTTOM _ M ARGIN Ġ= Ġ 6 0 Ċ private Ġconst Ġval ĠMO ON _ BOTTOM _ M ARGIN Ġ= Ġ 6 0 Ċ private Ġconst Ġval ĠMO UN TAIN _ T INT _ ALPHA _ MAX Ġ= Ġ 0 . 4 f Ċ Ċ private Ġenum Ġclass ĠAnimated Time Jump Progress Ġ{ ĠSTART , ĠEND Ġ} Ċ