package Ġcom . qu ix om . apps . weather stream Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app widget . App Widget Manager Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . drawable . Animated Vector Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . speech . Recognizer Intent Ċ import Ġandroid . support . annotation . Requires Api Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġcom . google . android . gms . common . Google Play Services Not Available Exception Ċ import Ġcom . google . android . gms . common . Google Play Services Repair able Exception Ċ import Ġcom . google . android . gms . location . places . ui . Place Autocomplete Ċ import Ġcom . qu ix om . apps . weather stream . Methods . Companion . is Network Connected Ċ import Ġcom . qu ix om . apps . weather stream . Methods . Companion . prompt Speech Input Ċ import Ġcom . qu ix om . apps . weather stream . adapters . Location History Adapter Ċ import Ġcom . qu ix om . apps . weather stream . db config . Upgrade Data Ċ import Ġcom . qu ix om . apps . weather stream . fragments . About App Fragment Ċ import Ġcom . qu ix om . apps . weather stream . fragments . Main Fragment Ċ import Ġcom . qu ix om . apps . weather stream . helper . Theme Helper Ċ import Ġcom . qu ix om . apps . weather stream . model . Location Search History Ċ import Ġcom . qu ix om . apps . weather stream . model . Weather Data Ċ import Ġcom . qu ix om . apps . weather stream . model . Weather Forecast Data Ċ import Ġcom . qu ix om . apps . weather stream . sl iding menu . Sl iding Menu Ċ import Ġcom . qu ix om . apps . weather stream . utilities .* Ċ import Ġcom . qu ix om . apps . weather stream . web service . API Parameters Ċ import Ġcom . qu ix om . apps . weather stream . web service . Network Config Ċ import Ġcom . qu ix om . apps . weather stream . widgets . Weather Stream App Widget Ċ import Ġcom . ra iz labs . android . db flow . sql . language . Delete Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . left menu .* Ċ import Ġkotlinx . android . synt hetic . main . setting menu .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjava . util .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView . On Long ClickListener , ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġvar Ġsl iding Menu Left : ĠSl iding Menu ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsl iding Menu Right : ĠSl iding Menu ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfragment Container : ĠFrame Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfragment Util : ĠFragment Util ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġpreference Util : ĠPreference Util ĊĠĠĠ Ġlateinit Ġvar ĠerrorHandler : Ġcom . qu ix om . apps . weather stream . web service . ErrorHandler ĊĠĠĠ Ġprivate Ġvar Ġlists Ġ= ĠArrayList < Location Search History >() ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . N ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpreference Util Ġ= ĠPreference Util ( this @ MainActivity ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecor Ġ= Ġwindow . decor View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Theme Helper . is Night Mode Enabled ( base Context , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorHandler Ġ= Ġcom . qu ix om . apps . weather stream . web service . ErrorHandler ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġfragment Util Ġ= ĠFragment Util ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġfragment Container Ġ= ĠfindViewById ( R . id . fl _ fragment _ container ) ĊĊĠĠĠĠĠĠĠ Ġinit Slide Menu Left () ĊĠĠĠĠĠĠĠ Ġinit Slide Menu Right () ĊĊĠĠĠĠĠĠĠ Ġiv Speech To Search Menu . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġiv Search Location IC . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtv Location Search Text . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtv Clear Search . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTemperature Ġswitch ĊĠĠĠĠĠĠĠ Ġrb C els ius . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrb F ah ren heit . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSpeed Ġswitch ĊĠĠĠĠĠĠĠ Ġrb MS . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrb MP H . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠNotification Ġswitch ĊĠĠĠĠĠĠĠ Ġrb On Notification . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrb Off Notification . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAir , ĠSe a Ġlevel , ĠGround Ġlevel Ġpressure Ġswitch ĊĠĠĠĠĠĠĠ Ġrb HP A . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrb In Hg . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTheme ĠMode ĊĠĠĠĠĠĠĠ Ġrb Day . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrb Night . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAbout ĠApp ĊĠĠĠĠĠĠĠ Ġtv About Setting Label . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRate ĠUs ĊĠĠĠĠĠĠĠ Ġtv Rate Us . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWeather Ġdata Ġprovider ĊĠĠĠĠĠĠĠ Ġtv Weather DataProvider . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠShare Ġapplication ĊĠĠĠĠĠĠĠ Ġtv Share App . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFeedback ĊĠĠĠĠĠĠĠ Ġtv Feedback . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTry Ġother ĠApps ĊĠĠĠĠĠĠĠ Ġtv Check Other Apps . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠLaunch ĠMain ĠFragment Ġ*/ ĊĠĠĠĠĠĠĠ Ġfragment Util !!. clear Back Stack Frag me ts () ĊĠĠĠĠĠĠĠ Ġfragment Util !!. replace Fragment ( Main Fragment (), Ġfalse , Ġfalse ) ĊĊĊĠĠĠĠĠĠĠ Ġ/** * ĠInit ĠRecyclerView Ġhere Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġrv Menu Location List . layout Manager Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġval Ġweather Data : ĠWeather Data ? Ġ= ĠWeather Data . getLocation Based Weather Details () ĊĠĠĠĠĠĠĠ Ġif Ġ( weather Data Ġ== Ġnull Ġ&& Ġintent . extras Ġ!= Ġnull Ġ&& Ġintent . extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlatitude : ĠDouble Ġ= Ġintent . extras . getDouble ( Key Util . LAT IT UDE _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlongitude : ĠDouble Ġ= Ġintent . extras . getDouble ( Key Util . LONG IT UDE _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( latitude Ġ!= Ġ 0 . 0 Ġ&& Ġlongitude Ġ!= Ġ 0 . 0 ) Ġcall Search Location Api ( latitude , Ġlongitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠWeather Stream Callback Manager . update Home Screen Data ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠFetch Ġsearched Ġlocation Ġlist Ġfrom Ġdatabase . ĊĠĠĠĠĠĠĠ Ġval Ġsearched Location : ĠList < Location Search History > Ġ= ĠLocation Search History . get Se ar ched Location List () ĊĠĠĠĠĠĠĠ Ġif Ġ( sear ched Location . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent Search . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sear ched LC Ġin Ġsearched Location ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlists . add ( Location Search History ( 0 , Ġsearched LC . city Name , Ġsearched LC . county Name , Ġsearched LC . weather Type , Ġsearched LC . temperature )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlists . reverse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Menu Location List . adapter Ġ= ĠLocation History Adapter ( preference Util , Ġlists , Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġif Ġ( sl iding Menu Left ?. is Menu Showing !! ) Ġsl iding Menu Left ?. toggle () ĊĠĠĠĠĠĠĠ Ġif Ġ( sl iding Menu Right ?. is Menu Showing !! ) Ġsl iding Menu Right ?. toggle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġ/** * ĠSend Ġbroadcast Ġto Ġupdate Ġwidget 's Ġdata Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠApp Widget Manager . getInstance ( application ). getApp Widget Ids ( Component Name ( application , ĠWeather Stream App Widget :: class . java )) ĊĠĠĠĠĠĠĠ Ġif Ġ( ids Ġ!= Ġnull Ġ&& Ġids . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity . application Context , ĠWeather Stream App Widget :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠApp Widget Manager . ACTION _ APP WIDGET _ UPDATE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ IDS , Ġids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Broadcast ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠMethod Ġfor Ġinitialise Ġslide Ġmenu Ġdrawer Ġ( Setting ) Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġinit Slide Menu Left () Ġ{ ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left Ġ= ĠSl iding Menu ( this ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. mode Ġ= ĠSl iding Menu . LEFT ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. touch Mode Above Ġ= ĠSl iding Menu . TO UCH MODE _ NONE ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. set Shadow Width Res ( R . dim en . shadow _ width ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. set Be hind Offset Res ( R . dim en . sl iding menu _ offset ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. set Fade Degree ( 1 f ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. attach To Activity ( this , ĠSl iding Menu . SL ID ING _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. set Menu ( R . layout . left menu ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. is Sl iding Enabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠMethod Ġfor ĠOpen / Close Ġslide Ġmenu Ġdrawer Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtoggle Slide Menu Left () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sl iding Menu Right ?. is Menu Showing !! ) Ġsl iding Menu Right ?. toggle () ĊĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. toggle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠMethod Ġfor Ġinitialise Ġslide Ġmenu Ġdrawer Ġ*** / ĊĠĠĠ Ġprivate Ġfun Ġinit Slide Menu Right () Ġ{ ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right Ġ= ĠSl iding Menu ( this ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. mode Ġ= ĠSl iding Menu . RIGHT ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. touch Mode Above Ġ= ĠSl iding Menu . TO UCH MODE _ NONE ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. set Shadow Width Res ( R . dim en . shadow _ width ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. set Be hind Offset Res ( R . dim en . sl iding menu _ offset ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. set Fade Degree ( 0 . 8 f ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. attach To Activity ( this , ĠSl iding Menu . SL ID ING _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. set Menu ( R . layout . setting menu ) ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. is Sl iding Enabled ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠNotification Ġswitch Ġstatus ĊĠĠĠĠĠĠĠ Ġif Ġ( preference Util . getBoolean Pref ( preference Util . IS _ NOTIFICATION _ ON )) Ġrb On Notification . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġelse Ġrb Off Notification . isChecked Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠTemperature Ġswitch Ġstatus ĊĠĠĠĠĠĠĠ Ġif Ġ( preference Util . getBoolean Pref ( preference Util . IS _ TEMP ER ATURE _ UNIT _ CEL CI US )) Ġrb C els ius . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġelse Ġrb F ah ren heit . isChecked Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠSpeed Ġswitch Ġstatus ĊĠĠĠĠĠĠĠ Ġif Ġ( preference Util . getBoolean Pref ( preference Util . IS _ SPEED _ UNIT _ METER S )) Ġrb MS . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġelse Ġrb MP H . isChecked Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠTheme Ġswitch Ġon / off ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Helper . is Night Mode Enabled ( this , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Day . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Night . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Day . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Night . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠMethod Ġfor ĠOpen / Close Ġslide Ġsetting Ġdrawer Ġ*/ ĊĠĠĠ Ġfun Ġtoggle Slide Menu Right () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sl iding Menu Left ?. is Menu Showing !! ) Ġsl iding Menu Left ?. toggle () ĊĠĠĠĠĠĠĠ Ġsl iding Menu Right ?. toggle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Speech To Search Menu Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . avoid DoubleClick s ( iv Speech To Search Menu ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprompt Speech Input ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Location Search Text Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . avoid DoubleClick s ( tv Location Search Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Google Auto Location Search ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb On Notification Ġ-> Ġpreference Util . set Boolean Pref ( preference Util . IS _ NOTIFICATION _ ON , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Off Notification Ġ-> Ġpreference Util . set Boolean Pref ( preference Util . IS _ NOTIFICATION _ ON , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb C els ius Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ TEMP ER ATURE _ UNIT _ CEL CI US , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb F ah ren heit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ TEMP ER ATURE _ UNIT _ CEL CI US , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb MS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ SPEED _ UNIT _ METER S , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb MP H Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ SPEED _ UNIT _ METER S , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb HP A Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ AIR _ PRESS URE _ HP A , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb In Hg Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Util . set Boolean Pref ( preference Util . IS _ AIR _ PRESS URE _ HP A , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrb Day , Ġrb Night Ġ-> Ġchange Night Mode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv About Setting Label Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Slide Menu Right () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Util ?. add Fragment ( About App Fragment (), Ġtrue , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rate Us Ġ-> Ġrate Us App ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Weather DataProvider Ġ-> Ġweb Intent (" https :// open weather map . org /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Share App Ġ-> ĠMethods . share Intent ( this @ MainActivity , Ġ" https :// play . google . com / store / apps / details ? id = com . qu ix om . apps . weather stream ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Feedback Ġ-> ĠMethods . feedback Intent ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Check Other Apps Ġ-> Ġweb Intent (" https :// play . google . com / store / apps / dev ? id = 5 5 8 2 7 4 0 3 6 1 6 8 2 1 1 3 0 8 9 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search Ġ-> Ġconfirm Clear Search History () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Long Click ( p 0 : ĠView ?): ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Util . REQ _ CODE _ SPE E CH _ INPUT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdata . getString ArrayList Extra ( Recognizer Intent . EXTRA _ RESULTS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Google Auto Location Search ( result [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Util . PLACE _ AUTO COMPLETE _ REQUEST _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= ĠPlace Autocomplete . get Place ( this , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sl iding Menu Left ?. is Menu Showing !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsl iding Menu Left ?. toggle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Search Location Api ( place . lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlace Autocomplete . RESULT _ ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . hide Keyboard ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlace Autocomplete . getStatus ( this , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity . RESULT _ C ANCE LED Ġ-> ĠMethods . hide Keyboard ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Google Auto Location Search ( location Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠPlace Autocomplete . Intent Builder ( Place Autocomplete . MODE _ OVER LAY ). build ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" initial _ query ", Ġlocation Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠKey Util . PLACE _ AUTO COMPLETE _ REQUEST _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠGoogle Play Services Repair able Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠGoogle Play Services Not Available Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠAPI ĠMethod Ġfor Ġget Ġthe Ġweather Ġinformation Ġof Ġspecific Ġlocation Ġ**/ ĊĠĠĠ Ġprivate Ġvar Ġlocation Search Call : ĠCall < Weather Data >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġcall Search Location Api ( lat : ĠDouble , Ġlon : ĠDouble ) Ġ= Ġif Ġ( is Network Connected ( this @ MainActivity )) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġhash Map Ġ= ĠAPI Parameters . getParam () ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Location Search . lat ] Ġ= Ġ"" Ġ+ Ġlat ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Location Search . lon ] Ġ= Ġ"" Ġ+ Ġlon ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Location Search . type ] Ġ= ĠKey Util . TYPES _ AC CUR ATE ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Location Search . units ] Ġ= Ġ"" Ġ+ ĠKey Util . UNITS _ METRIC ĊĠĠĠĠĠĠĠ ĠMethods . is Progress Show Message ( this @ MainActivity ) ĊĊĠĠĠĠĠĠĠ Ġlocation Search Call Ġ= ĠNetwork Config . get Web Apis (). get Weather Detail ( Build Config . KEY _ OPEN _ WE ATHER _ MAP _ KEY , Ġhash Map ) ĊĠĠĠĠĠĠĠ Ġlocation Search Call !!. enqueue ( object Ġ: ĠCallback < Weather Data > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Weather Data >, Ġresponse : ĠResponse < Weather Data >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call . is Canceled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body ()?. cod Ġ== Ġ 2 0 0 Ġ&& Ġresponse . body ()?. name Ġ!= Ġnull Ġ&& Ġresponse . body ()?. name Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . hide Keyboard ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpgrade Data . clear Application Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Detail : ĠWeather Data ? Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Weather Detail : ĠArray < Weather Data . Weather >? Ġ= Ġresponse . body () !!. weather ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsys Weather Detail : ĠWeather Data . Sys Ġ= Ġresponse . body () !!. sys !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcoord Detail : ĠWeather Data . Coord Ġ= Ġresponse . body () !!. coord !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Weather Detail : ĠWeather Data . Main Ġ= Ġresponse . body () !!. main !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwind Weather Detail : ĠWeather Data . Wind Ġ= Ġresponse . body () !!. wind !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclouds Weather Detail : ĠWeather Data . Cloud s Ġ= Ġresponse . body () !!. clouds !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather Detail ?. save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoord Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoord Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsys Weather Detail . sys Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsys Weather Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Weather Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwind Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwind Weather Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclouds Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclouds Weather Detail . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( in Weather Dt Ġin Ġinner Weather Detail !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Weather Dt . w Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Weather Dt . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** * ĠSend Ġbroadcast Ġto Ġupdate Ġwidget 's Ġdata Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity . application Context , ĠWeather Stream App Widget :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠApp Widget Manager . ACTION _ APP WIDGET _ UPDATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠApp Widget Manager . getInstance ( application ). getApp Widget Ids ( Component Name ( application , ĠWeather Stream App Widget :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ IDS , Ġids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Broadcast ( intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** Ġcalled Ġhere Ġlocation Ġweather Ġforecast ing Ġapi Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Weather Forecast ing ( lat , Ġlon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** * ĠWeather Ġnotification Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( preference Util . getBoolean Pref ( preference Util . IS _ NOTIFICATION _ ON )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal Notification Ġ= ĠLocal Notification ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtitle : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sys Weather Detail . country Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc Ġ= ĠLocale ("", Ġsys Weather Detail . country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġweather Detail ?. name . plus (", Ġ"). plus ( loc . display Country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage : ĠString ? Ġ= Ġif Ġ( preference Util . getBoolean Pref ( preference Util . IS _ TEMP ER ATURE _ UNIT _ CEL CI US )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath . round ( main Weather Detail . temp !!. toDouble ()). toString (). plus ( resources . getString ( R . string . c _ symbol )). plus (" Ġ" Ġ+ Ġinner Weather Detail [ 0 ]. description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠMath . round ( Methods . convert C els ius To F ah ren heit ( main Weather Detail . temp ?. toFloat () !! )). toString (). plus ( resources . getString ( R . string . f _ symbol )). plus (" Ġ" Ġ+ Ġinner Weather Detail [ 0 ]. description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠDate Util . getDate From Millis ( System . currentTimeMillis (), ĠDate Util . time Hour Format , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Type Ġ= Ġinner Weather Detail [ 0 ]. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġnull Ġ&& Ġmessage Ġ!= Ġnull ) Ġlocal Notification . show Custom Layout Head s Up Notification ( this @ MainActivity , Ġtitle , Ġmessage , Ġtime , ĠWeather To Image . get Weather Type Condition Code ( null , Ġweather Type . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** * ĠSave Ġsearched Ġlocation Ġand Ġshown Ġit Ġon Ġleft Ġside Ġmenu Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( weather Detail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearched Location : ĠList < Location Search History > Ġ= ĠLocation Search History . get Se ar ched Location List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sear ched Location . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearched Location . filter Ġ{ Ġit . id Ġ== Ġresponse . body ()?. id Ġ}. forEach Ġ{ Ġreturn Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Side Menu Search Entry ( weather Detail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġset Side Menu Search Entry ( weather Detail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġ" No ĠLocation ĠFound ", ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġresponse . message (), ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Weather Data > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call !!. is Canceled ) ĠMethods . is Progress Hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġresources . getString ( R . string . no _ internet _ connection ), ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĊĠĠĠ Ġ/** * ĠAPI ĠMethod Ġfor Ġget Ġthe Ġweather Ġinformation Ġof Ġspecific Ġlocation Ġ**/ ĊĠĠĠ Ġprivate Ġvar Ġweather Forecast ing Call : ĠCall < Weather Forecast Data >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġcall Weather Forecast ing ( lat : ĠDouble , Ġlon : ĠDouble ) Ġ= Ġif Ġ( is Network Connected ( this @ MainActivity )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Map Ġ= ĠAPI Parameters . getParam () ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Forecast ing Weather . lat ] Ġ= Ġ"" Ġ+ Ġlat ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Forecast ing Weather . lon ] Ġ= Ġ"" Ġ+ Ġlon ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Forecast ing Weather . units ] Ġ= Ġ"" Ġ+ ĠKey Util . UNITS _ METRIC ĊĠĠĠĠĠĠĠ Ġhash Map [ API Parameters . Forecast ing Weather . type ] Ġ= Ġ"" Ġ+ ĠKey Util . TYPES _ AC CUR ATE ĊĊĠĠĠĠĠĠĠ Ġweather Forecast ing Call Ġ= ĠNetwork Config . get Web Apis (). get Weather Forecast ing ( Build Config . KEY _ OPEN _ WE ATHER _ MAP _ KEY , Ġhash Map ) ĊĠĠĠĠĠĠĠ Ġweather Forecast ing Call !!. enqueue ( object Ġ: ĠCallback < Weather Forecast Data > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Weather Forecast Data >, Ġresponse : ĠResponse < Weather Forecast Data >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call . is Canceled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body ()?. cod Ġ== Ġ" 2 0 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . hide Keyboard ( this @ MainActivity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Forecast Data : ĠWeather Forecast Data Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather Forecast Data . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather Forecast Data . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġforecast ing List : ĠArray < Weather Forecast Data . Forecast List >? Ġ= Ġresponse . body ()?. list !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( forecast ing List Ġ!= Ġnull Ġ&& Ġforecast ing List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethods . is Progress Hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( hourly Weather Data Ġin Ġforecast ing List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhourly Weather Data . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhourly Weather Data . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsys Weather Detail : ĠWeather Data . Sys ? Ġ= Ġhourly Weather Data . sys !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sys Weather Detail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsys Weather Detail . sys Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsys Weather Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Weather Detail : ĠWeather Data . Main Ġ= Ġhourly Weather Data . main !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Weather Detail . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwind Weather Detail : ĠWeather Data . Wind Ġ= Ġhourly Weather Data . wind !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwind Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwind Weather Detail . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclouds Weather Detail : ĠWeather Data . Cloud s Ġ= Ġhourly Weather Data . clouds !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclouds Weather Detail . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclouds Weather Detail . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hourly Weather Data . rain Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrain Data : ĠWeather Forecast Data . Rain Ġ= Ġhourly Weather Data . rain !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrain Data . id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrain Data . dt Ġ= Ġhourly Weather Data . dt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrain Data . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠDelete . table ( Weather Forecast Data . Rain :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Weather Detail : ĠArray < Weather Data . Weather >? Ġ= Ġhourly Weather Data . weather ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inner Weather Detail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( inner W Detail Ġin Ġinner Weather Detail ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner W Detail . w Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner W Detail . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġresponse . message (), ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġresponse . message (), ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Weather Forecast Data > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call !!. is Canceled ) ĠMethods . is Progress Hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ġelse ĠMethods . show Sn ackBar ( coordinator Layout Main , Ġresources . getString ( R . string . no _ internet _ connection ), ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ), Ġthis @ MainActivity ) ĊĊĠĠĠ Ġfun Ġset Side Menu Search Entry ( weather Detail : ĠWeather Data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Search Ġ= ĠLocation Search History () ĊĠĠĠĠĠĠĠ Ġif Ġ( weather Detail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent Search . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( weather Detail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . id Ġ= Ġweather Detail . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . city Name Ġ= Ġweather Detail . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . county Name Ġ= Ġweather Detail . sys ?. country ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . temperature Ġ= Ġweather Detail . main ?. temp ?. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . weather Type Ġ= Ġweather Detail . weather ?. get ( 0 )?. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . lat Ġ= Ġweather Detail . coord ?. lat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . lon Ġ= Ġweather Detail . coord ?. lon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Search . save () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlists . add ( Location Search History ( location Search . id , Ġlocation Search . city Name , Ġlocation Search . county Name , Ġlocation Search . weather Type , Ġlocation Search . temperature )) ĊĠĠĠĠĠĠĠ Ġrv Menu Location List . adapter Ġ= ĠLocation History Adapter ( preference Util , Ġlists , Ġthis @ MainActivity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠMethod Ġfor Ġclear Ġleft Ġmenu 's Ġrecently Ġsearched Ġdata Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġthis . lists . size ĊĠĠĠĠĠĠĠ Ġif Ġ( size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . lists . remove At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Menu Location List ?. adapter ?. notify Item Range Removed ( 0 , Ġsize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠConfirm ation Ġdialog Ġfor Ġclear Ġsearch Ġhistory Ġ**/ ĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") ĊĠĠĠ Ġprivate Ġfun Ġconfirm Clear Search History () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Show Ġconfirmation Ġdialog Ġfor Ġgetting Ġconfirmation Ġof Ġuser ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Builder Ġ= ĠAlertDialog . Builder ( this @ MainActivity ). set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġthis . layout Inflater ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= Ġinflater . inflate ( R . layout . clear _ data _ warning _ dialog , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog Builder . setView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġdialog Builder . set Positive Button ( android . R . string . ok ) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpgrade Data . clear Application Data () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpgrade Data . clear Search History () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Clear Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent Search . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Slide Menu Left () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeather Stream Callback Manager . update Home Screen Data ( 4 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** * ĠSend Ġbroadcast Ġto Ġupdate Ġwidget 's Ġdata Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity . application Context , ĠWeather Stream App Widget :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠApp Widget Manager . ACTION _ APP WIDGET _ UPDATE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠApp Widget Manager . getInstance ( application ). getApp Widget Ids ( Component Name ( application , ĠWeather Stream App Widget :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ IDS , Ġids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Broadcast ( intent ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog Builder . set Negative Button ( android . R . string . cancel ) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġdialog Builder . create () ĊĠĠĠĠĠĠĠ Ġb . show () ĊĠĠĠĠĠĠĠ Ġb . window . setBackground Drawable Resource ( R . color . app _ background ) ĊĠĠĠĠĠĠĠ Ġb . get Button ( AlertDialog . BUTTON _ NEGATIVE ). setTextColor ( Context Compat . getColor ( this , ĠR . color . font _ primary )) ĊĠĠĠĠĠĠĠ Ġb . get Button ( AlertDialog . BUTTON _ POSITIVE ). setTextColor ( Context Compat . getColor ( this , ĠR . color . font _ primary )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠMethod Ġfor Ġredirect Ġuser Ġto ĠApp Ġpage Ġon ĠGoogle ĠPlay ĠStore Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġrate Us App ( m Activity : ĠMainActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse (" market :// details ? id = com . qu ix om . apps . weather stream ") ĊĠĠĠĠĠĠĠ Ġval Ġgo To Market Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġuri ) ĊĠĠĠĠĠĠĠ Ġgo To Market . add Flags ( Intent . FLAG _ ACTIVITY _ NO _ HISTORY Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ DOCUMENT Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ MULTIPLE _ TASK ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity . startActivity ( goTo Market ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity . startActivity ( Intent ( Intent . ACTION _ VIEW , ĠUri . parse (" https :// play . google . com / store / apps / details ? id = com . qu ix om . apps . weather stream & hl = en "))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ **** ĠMethod Ġfor Ġopen ĠBrowser Ġwith Ġload Ġpredefined Ġwebsite Ġaddress Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġweb Intent ( link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbrowser Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( link )) ĊĠĠĠĠĠĠĠ ĠstartActivity ( browser Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Night Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Helper . is Night Mode Enabled ( this , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Helper . set Theme ( this , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Helper . set Theme ( this , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġthis . intent ĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NO _ ANIM ATION ) ĊĠĠĠĠĠĠĠ Ġthis . override Pending Transition ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġthis . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠĠĠ Ġthis . override Pending Transition ( 0 , Ġ 0 ) ĊĠĠĠ Ġ} Ċ } ĊĊ