// ĠCopyright Ġ( c ) Ġ 2 0 1 6 , ĠM ique l ĠMart ÃŃ Ġ< m ique lm art i 1 1 1 @ gmail . com > Ċ // ĠSee ĠLICENSE Ġfor Ġlicensing Ġinformation Ċ package Ġcat . m vm ike . minimal calendar widget Ċ Ċ 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 . Bundle Ċ import Ġandroid . widget . Remote Views Ċ import Ġcat . m vm ike . minimal calendar widget . application . action . system . Start Alarm UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . action . system . Stop Alarm UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . action . user . Add Listeners UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . action . user . Process Intent UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . visual . draw . Draw Days UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . visual . draw . Draw Days Header UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . visual . draw . Draw Month And Year Header UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . application . visual . draw . Draw Widget Layout Ċ import Ġcat . m vm ike . minimal calendar widget . application . visual . get . Get Widget Format UseCase Ċ import Ġcat . m vm ike . minimal calendar widget . domain . configuration . Enum Configuration Ċ import Ġcat . m vm ike . minimal calendar widget . domain . configuration . clear All Configuration Ċ import Ġcat . m vm ike . minimal calendar widget . infrastructure . System Resolver Ċ Ċ class ĠMonth Widget Ġ: ĠApp Widget Provider () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Enabled ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Enabled ( context ) ĊĠĠĠĠĠĠĠ ĠStart Alarm UseCase . execute ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon App Widget Options Changed ( context : ĠContext , Ġapp Widget Manager : ĠApp Widget Manager , Ġapp Widget Id : ĠInt , Ġnew Options : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on App Widget Options Changed ( context , Ġapp Widget Manager , Ġapp Widget Id , Ġnew Options ) ĊĠĠĠĠĠĠĠ Ġredraw Widget ( context , Ġapp Widget Manager , Ġapp Widget Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ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 ) ĊĠĠĠĠĠĠĠ Ġredraw Widgets ( context , Ġapp Widget Manager , Ġapp Widget Ids ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Receive ( context , Ġintent ) ĊĠĠĠĠĠĠĠ ĠProcess Intent UseCase . execute ( context , Ġintent . action ) ĊĠĠĠĠĠĠĠ Ġif Ġ( System Resolver . is Read Calendar Per mitted ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredraw ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disabled ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Disabled ( context ) ĊĠĠĠĠĠĠĠ Ġclear All Configuration ( context ) ĊĠĠĠĠĠĠĠ ĠStop Alarm UseCase . execute ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġredraw ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= ĠComponent Name ( context , ĠMonth Widget :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Widget Manager Ġ= ĠApp Widget Manager . getInstance ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredraw Widgets ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager Ġ= Ġapp Widget Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Ids Ġ= Ġapp Widget Manager . getApp Widget Ids ( name ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġredraw Widgets ( context : ĠContext , Ġapp Widget Manager : ĠApp Widget Manager , Ġapp Widget Ids : ĠInt Array ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Ids . forEach Ġ{ Ġapp Widget Id Ġ-> Ġredraw Widget ( context , Ġapp Widget Manager , Ġapp Widget Id )} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġredraw Widget ( context : ĠContext , Ġapp Widget Manager : ĠApp Widget Manager , Ġapp Widget Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidget Remote View Ġ= ĠRemote Views ( context . packageName , ĠEnum Configuration . Widget Theme . get ( context ). main Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View . removeAll Views ( R . id . calendar _ widget ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Listeners UseCase . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View Ġ= Ġwidget Remote View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠGet Widget Format UseCase . execute ( app Widget Manager , Ġapp Widget Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDraw Widget Layout . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View Ġ= Ġwidget Remote View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDraw Month And Year Header UseCase . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View Ġ= Ġwidget Remote View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDraw Days Header UseCase . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View Ġ= Ġwidget Remote View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDraw Days UseCase . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget Remote View Ġ= Ġwidget Remote View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager . update App Widget ( app Widget Id , Ġwidget Remote View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ