package Ġme . ws j . f eng yun . widget Ċ Ċ 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 . os . Build Ċ import Ġandroid . widget . Remote Views Ċ import Ġme . ws j . f eng yun . R Ċ import Ġme . ws j . f eng yun . service . Widget Service Ċ import Ġme . ws j . f eng yun . ui . activity . Home Activity Ċ import Ġme . ws j . f eng yun . utils . L un ar Ċ import Ġper . ws j . common lib . utils . Log Util Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠImplementation Ġof ĠApp ĠWidget Ġfunctionality . Ċ Ġ*/ Ċ class ĠWeather Widget Ġ: ĠApp Widget Provider () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonUpdate ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġapp Widget Manager : ĠApp Widget Manager , ĊĠĠĠĠĠĠĠ Ġapp Widget Ids : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Foreground Service ( Intent ( context , ĠWidget Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Service ( Intent ( context , ĠWidget Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠThere Ġmay Ġbe Ġmultiple Ġwidgets Ġactive , Ġso Ġupdate Ġall Ġof Ġthem ĊĠĠĠĠĠĠĠ Ġfor Ġ( app Widget Id Ġin Ġapp Widget Ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate App Widget ( context , Ġapp Widget Manager , Ġapp Widget Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Receive ( context , Ġintent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enabled ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġtodo Ġadd Ġtip : Ġadd Ġboot Ġstart ĊĠĠĠĠĠĠĠ ĠLog Util . e (" widget Ġenable ------------------- ") ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Foreground Service ( Intent ( context , ĠWidget Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Service ( Intent ( context , ĠWidget Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disabled ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . stop Service ( Intent ( context , ĠWidget Service :: class . java )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġupdate App Widget ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġapp Widget Manager : ĠApp Widget Manager , ĊĠĠĠ Ġapp Widget Id : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¿ĻéĩĮ åŁºæľ¬ æ²¡ çĶ¨ äºĨ ï¼Į éĥ½ æĶ¾åľ¨ service ä¸Ń åį³åı¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// ĠConstruct Ġthe ĠRemote Views Ġobject ĊĠĠĠ Ġ/* val Ġviews Ġ= ĠRemote Views ( context . packageName , ĠR . layout . weather _ widget ) Ċ // ĠĠĠ Ġviews . setText View Text ( R . id . tv L un ar Date , ĠL un ar ( Calendar . getInstance ()). toString ()) ĊĊĠĠĠ Ġval Ġcalendar Intent Ġ= ĠIntent () ĊĠĠĠ Ġval Ġpkg Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 8 ) Ġ" com . android . calendar " Ġelse Ġ" com . google . android . calendar " ĊĠĠĠ Ġcalendar Intent . component Ġ= ĠComponent Name ( pkg , Ġ" com . android . calendar . Launch Activity ") ĊĊĠĠĠ Ġval Ġcalendar PI Ġ= ĠPending Intent . getActivity ( context , Ġ 0 , Ġcalendar Intent , Ġ 0 ) ĊĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . ll Calendar , Ġcalendar PI ) ĊĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . tv L un ar Date , Ġcalendar PI ) ĊĊĠĠĠ Ġval Ġclock Intent Ġ= ĠIntent () ĊĠĠĠ Ġclock Intent . component Ġ= ĊĠĠĠĠĠĠĠ ĠComponent Name (" com . android . desk clock ", Ġ" com . android . desk clock . Desk Clock ") ĊĠĠĠ Ġval Ġtime PI Ġ= ĠPending Intent . getActivity ( context , Ġ 0 , Ġclock Intent , Ġ 0 ) ĊĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . clock Time , Ġtime PI ) ĊĊĠĠĠ Ġval Ġweather Intent Ġ= ĠIntent ( context , ĠHome Activity :: class . java ) ĊĠĠĠ Ġval Ġweather PI Ġ= ĠPending Intent . getActivity ( context , Ġ 0 , Ġweather Intent , Ġ 0 ) ĊĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . ll Weather , Ġweather PI ) ĊĊĠĠĠ Ġ// ĠIn struct Ġthe Ġwidget Ġmanager Ġto Ġupdate Ġthe Ġwidget ĊĠĠĠ Ġapp Widget Manager . update App Widget ( app Widget Id , Ġviews ) */ Ċ }