package Ġcom . qu ix om . apps . weather stream . widgets Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . app widget . App Widget Manager Ċ import Ġandroid . app widget . App Widget Provider Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Remote Views Ċ import Ġcom . qu ix om . apps . weather stream . R Ċ import Ġcom . qu ix om . apps . weather stream . activity . Splash Activity Ċ import Ġcom . qu ix om . apps . weather stream . model . Weather Data Ċ import Ġcom . qu ix om . apps . weather stream . services . Weather Widget Service ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġak if Ġon Ġ 1 2 / 5 / 1 7 . Ċ Ġ*/ Ċ class ĠWeather Stream App Widget Ġ: ĠApp Widget Provider () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonUpdate ( context : ĠContext ?, Ġapp Widget Manager : ĠApp Widget Manager ?, Ġapp Widget Ids : ĠInt Array ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Update ( context , Ġapp Widget Manager , Ġapp Widget Ids ) ĊĠĠĠĠĠĠĠ Ġupdate App Widget ( context , Ġapp Widget Manager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Receive ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Widget Manager Ġ= ĠApp Widget Manager . getInstance ( context ?. application Context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( app Widget Manager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate App Widget ( context , Ġapp Widget Manager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠMethod Ġfor Ġupdate Ġdata Ġof Ġwidget . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext : ĠContext Ġof Ġapp ĊĠĠĠĠ Ġ* Ġ@ param Ġapp Widget Manager : ĠInstance Ġof ĠApp Widget Manager ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupdate App Widget ( context : ĠContext ?, Ġapp Widget Manager : ĠApp Widget Manager ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthis Widget Ġ= ĠComponent Name ( context , ĠWeather Stream App Widget :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġall Widget Ids Ġ= Ġapp Widget Manager ?. getApp Widget Ids ( this Widget ) ĊĠĠĠĠĠĠĠ Ġval Ġremote Views Ġ= ĠRemote Views ( context ?. packageName , ĠR . layout . weather _ forecast ing _ app _ widget ) ĊĠĠĠĠĠĠĠ Ġval Ġweather Data Ġ= ĠWeather Data . getLocation Based Weather Details () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( all Widget Ids Ġ!= Ġnull Ġ&& Ġall Widget Ids . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( weather Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . setView Visibility ( R . id . tv No Data Found , ĠView . GONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context ?. application Context , ĠWeather Widget Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠApp Widget Manager . ACTION _ APP WIDGET _ UPDATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ IDS , Ġall Widget Ids ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. stop Service ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. start Service ( intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . setView Visibility ( R . id . tv No Data Found , ĠView . VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsplash Intent Ġ= ĠIntent ( context , ĠSpl ash Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . getActivity ( context , Ġ 0 , Ġsplash Intent , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . setOn Click Pending Intent ( R . id . fl widget Parent , Ġpending Intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( widget Id Ġin Ġall Widget Ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager . update App Widget ( widget Id , Ġremote Views ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Deleted ( context : ĠContext ?, Ġapp Widget Ids : ĠInt Array ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Deleted ( context , Ġapp Widget Ids ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠWeather Widget Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġcontext ?. stop Service ( intent ) ĊĠĠĠ Ġ} Ċ }