package Ġcom . the wiz rd . simple weather . controls . view models Ċ Ċ import Ġandroid . text . format . DateFormat Ċ import Ġandroid . util . Log Ċ import Ġcom . the wiz rd . shared _ resources . DateTime Constants Ċ import Ġcom . the wiz rd . shared _ resources . R Ċ import Ġcom . the wiz rd . shared _ resources . icons . Weather Icons Ċ import Ġcom . the wiz rd . shared _ resources . utils .* Ċ import Ġcom . the wiz rd . shared _ resources . utils . Context Utils . is Large Tablet Ċ import Ġcom . the wiz rd . shared _ resources . weather data . Weather Manager Ċ import Ġcom . the wiz rd . shared _ resources . weather data . model . Hour ly Forecast Ċ import Ġcom . the wiz rd . simple weather . App Ċ import Ġjava . text . Decimal Format Ċ Ċ class ĠHour ly Forecast Now ViewModel ( forecast : ĠHour ly Forecast ) Ġ{ ĊĠĠĠ Ġvar Ġdate : ĠString ĊĠĠĠ Ġvar Ġicon : ĠString ĊĠĠĠ Ġvar Ġtemperature : ĠString ĊĠĠĠ Ġvar Ġcondition : ĠString ĊĠĠĠ Ġvar Ġpop Chance : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġwind Speed : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġwind Direction : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠApp . instance . app Context ĊĠĠĠĠĠĠĠ Ġval Ġsettings Manager Ġ= ĠApp . instance . settings Manager ĊĠĠĠĠĠĠĠ Ġval Ġis F ah ren heit Ġ= ĠUnits . FA H REN HE IT Ġ== Ġsettings Manager . get Temperature Unit () ĊĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠDecimal Format . getInstance ( Locale Utils . getLocale ()) Ġas ĠDecimal Format ĊĠĠĠĠĠĠĠ Ġdf . apply Pattern (" 0 . ## ") ĊĊĠĠĠĠĠĠĠ Ġval Ġwm Ġ= ĠWeather Manager . instance ĊĊĠĠĠĠĠĠĠ Ġdate Ġ= Ġif Ġ( DateFormat . is 2 4 Hour Format ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġskeleton Ġ= Ġif Ġ( context . is Large Tablet ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime Constants . S KE LE TON _ DAY OF WEEK _ AND _ 2 4 HR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime Constants . S KE LE TON _ 2 4 HR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforecast . date . format ( DateTime Utils . of Pattern ForUser Locale ( DateTime Utils . get Best Pattern For Skeleton ( skeleton ))) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= Ġif Ġ( context . is Large Tablet ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime Constants . AB BRE V _ DAY OF WEEK _ AND _ 1 2 HR _ AMP M ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime Constants . AB BRE V _ 1 2 HR _ AMP M ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforecast . date . format ( DateTime Utils . of Pattern ForUser Locale ( pattern )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġicon Ġ= Ġforecast . icon ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Ġ= Ġif Ġ( forecast . high F Ġ!= Ġnull Ġ&& Ġforecast . high C Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġif Ġ( is F ah ren heit ) ĠMath . round ( forecast . high F ) Ġelse ĠMath . round ( forecast . high C ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( Locale Utils . getLocale (), Ġ"% d Â° ", Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Icons . PLACE HOLDER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( n Fe : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Ġ= ĠWeather Icons . PLACE HOLDER ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . write Line ( Log . ERROR , Ġn Fe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcondition Ġ= Ġif Ġ( wm . supports Weather Locale ()) Ġforecast . condition Ġelse Ġwm . get Weather Condition ( forecast . icon ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( forecast . wind M ph Ġ!= Ġnull Ġ&& Ġforecast . wind K ph Ġ!= Ġnull Ġ&& Ġforecast . wind M ph Ġ>= Ġ 0 Ġ&& Ġforecast . wind Degrees Ġ!= Ġnull Ġ&& Ġforecast . wind Degrees Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit Ġ= Ġsettings Manager . get Speed Unit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeed Val : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeed Unit : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( unit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnits . M ILE S _ PER _ HOUR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Val Ġ= ĠMath . round ( forecast . extras . wind M ph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Unit Ġ= Ġcontext . getString ( R . string . unit _ mph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnits . KI LO METER S _ PER _ HOUR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Val Ġ= ĠMath . round ( forecast . extras . wind K ph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Unit Ġ= Ġcontext . getString ( R . string . unit _ k ph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnits . METER S _ PER _ SECOND Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Val Ġ= ĠMath . round ( Conversion Methods . k ph To M sec ( forecast . extras . wind K ph )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Unit Ġ= Ġcontext . getString ( R . string . unit _ m sec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Val Ġ= ĠMath . round ( forecast . extras . wind M ph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Unit Ġ= Ġcontext . getString ( R . string . unit _ mph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwind Direction Ġ= ĠNumber Utils . getValue OrDefault ( forecast . wind Degrees , Ġ 0 ) Ġ+ Ġ 1 8 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwind Speed Ġ= ĠString . format ( Locale Utils . getLocale (), Ġ"% d Ġ% s ", Ġspeed Val , Ġspeed Unit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( forecast . extras . pop Ġ!= Ġnull Ġ&& Ġforecast . extras . pop Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop Chance Ġ= Ġforecast . extras . pop . toString () Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }