package Ġcom . github . mat te ob at til ana . demo Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġcom . github . mat te ob at til ana . weather . Pre cip Type Ċ import Ġcom . github . mat te ob at til ana . weather . Weather Data Ċ import Ġcom . github . mat te ob at til ana . weather . Weather View Sensor EventListener Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġorg . jetbrains . ank o . An ko Logger Ċ import Ġorg . jetbrains . ank o . browse Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMit che ll Ġon Ġ 7 / 5 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠAn ko Logger Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġweather Sensor : ĠWeather View Sensor EventListener ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġweather Sensor Ġ= ĠWeather View Sensor EventListener ( this , Ġweather _ view ) ĊĊĠĠĠĠĠĠĠ Ġweather _ label . set Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTextView ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠFrame Layout . LayoutParams ( Frame Layout . LayoutParams . MATCH _ PARENT , ĠFrame Layout . LayoutParams . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text Size ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 6 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype face Ġ= ĠType face . create (" sans - serif - thin ", ĠType face . NORMAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfade _ out _ percent _ seek bar . setOn Seek Bar ChangeListener ( object Ġ: ĠRed uc ed On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather _ view . fadeOut Percent Ġ= Ġprogress . toFloat () Ġ/ Ġseek Bar . max . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġangle _ seek bar . setOn Seek Bar ChangeListener ( object Ġ: ĠRed uc ed On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather _ view . angle Ġ= Ġprogress Ġ- Ġ 9 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġspeed _ seek bar . setOn Seek Bar ChangeListener ( object Ġ: ĠRed uc ed On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather _ view . speed Ġ= Ġprogress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġemission _ rate _ seek bar . setOn Seek Bar ChangeListener ( object Ġ: ĠRed uc ed On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather _ view . em ission Rate Ġ= Ġprogress . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġorientation _ switch . setOn Checked ChangeListener Ġ{ Ġ_: ĠCompound Button , Ġis Checked : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġweather Sensor . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġweather Sensor . stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġweather _ condition _ spinner . adapter Ġ= ĠArray Adapter . createFrom Resource ( this , ĠR . array . weather _ name _ list , Ġandroid . R . layout . simple _ spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweather _ condition _ spinner . on ItemSelected Listener Ġ= Ġobject Ġ: ĠRed uc ed On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġset Weather Data ( Pre cip Type . R AIN ) Ġ// ĠRuns Ġat Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġset Weather Data ( Pre cip Type . S NOW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġset Weather Data ( Pre cip Type . CLEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Invalid Ġspinner Ġposition !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgithub _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse (" https :// github . com / Mat te o B at til ana / Weather View ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġweather _ view . fadeOut Percent Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġweather _ view . angle Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Weather Data ( weather Data : ĠWeather Data ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġweather _ view . set Weather Data ( weather Data ) ĊĠĠĠĠĠĠĠ Ġspeed _ seek bar . set Progress Compat ( weather Data . speed , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġemission _ rate _ seek bar . set Progress Compat ( weather Data . em ission Rate . toInt (), Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġweather _ label . setText ( getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( weather Data . prec ip Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP recip Type . CLEAR Ġ-> ĠR . string . sun ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP recip Type . R AIN Ġ-> ĠR . string . rain ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP recip Type . S NOW Ġ-> ĠR . string . snow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġweather Sensor . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġweather Sensor . on Pause () ĊĠĠĠ Ġ} Ċ }