package Ġcom . y ash lan . ap lik as ig ithub user . widget Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . app . Pending Intent . Canceled Exception Ċ 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 . net . Uri Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroid . widget . Toast Ċ import Ġcom . y ash lan . ap lik as ig ithub user . R ĊĊ Ċ class ĠF avorite Stack View Widget Ġ: ĠApp Widget Provider () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREF RESH _ BUTTON Ġ= Ġ" refresh " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ ITEM Ġ= Ġ" com . y ash lan . ap lik as ig ithub user . EXTRA _ ITEM " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonUpdate ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġapp Widget Manager : ĠApp Widget Manager , ĊĠĠĠĠĠĠĠ Ġapp Widget Ids : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( app Widget Id Ġin Ġapp Widget Ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate App Widget ( context , Ġapp Widget Manager , Ġapp Widget Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enabled ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disabled ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Receive ( context , Ġintent ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( REFRESH _ BUTTON Ġ== Ġintent !!. action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmgr Ġ= ĠApp Widget Manager . getInstance ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcn Ġ= Ġcontext ?. let Ġ{ ĠComponent Name ( it , ĠF avorite Stack View Widget :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmgr . notify App Widget ViewData Changed ( mgr . getApp Widget Ids ( cn ), ĠR . id . stack _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. resources . getString ( R . string . refresh ing ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate App Widget ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġapp Widget Manager : ĠApp Widget Manager , ĊĠĠĠĠĠĠĠ Ġapp Widget Id : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠStack Widget Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ ID , Ġapp Widget Id ) ĊĠĠĠĠĠĠĠ Ġintent . data Ġ= ĠUri . parse ( intent . to Uri ( Intent . URI _ INT ENT _ SCHEME )) ĊĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= ĠRemote Views ( context . packageName , ĠR . layout . favorite _ stack view _ widget ) ĊĠĠĠĠĠĠĠ Ġviews . set Remote Adapter ( R . id . stack _ view , Ġintent ) ĊĠĠĠĠĠĠĠ Ġviews . set Empty View ( R . id . stack _ view , ĠR . id . empty _ view ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . get Broadcast ( context , Ġ 0 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . btn _ refresh , Ġget Pending Self Intent ( context )) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpending Intent . send () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠC anceled Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . message ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġapp Widget Manager . update App Widget ( app Widget Id , Ġviews ) ĊĠĠĠĠĠĠĠ Ġapp Widget Manager . notify App Widget ViewData Changed ( app Widget Id , ĠR . id . stack _ view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Pending Self Intent ( context : ĠContext ?): ĠPending Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , Ġjava Class ) ĊĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠREF RESH _ BUTTON ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . get Broadcast ( context , Ġ 0 , Ġintent , Ġ 0 ) ĊĠĠĠ Ġ} Ċ } ĊĊ