package Ġcom . simple mobile tools . flash light . helpers Ċ Ċ 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 . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . widget . Remote Views Ċ import Ġcom . simple mobile tools . commons . extensions . get Colo red Drawable With Color Ċ import Ġcom . simple mobile tools . flash light . R Ċ import Ġcom . simple mobile tools . flash light . extensions . config Ċ import Ġcom . simple mobile tools . flash light . extensions . drawable To Bitmap Ċ Ċ class ĠMy Widget Provider Ġ: ĠApp Widget Provider () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonUpdate ( context : ĠContext , Ġapp Widget Manager : ĠApp Widget Manager , Ġapp Widget Ids : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġperform Update ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġperform Update ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Color Ġ= Ġcontext . config . widget Bg Color ĊĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= ĠColor . alpha ( selected Color ) ĊĠĠĠĠĠĠĠ Ġval Ġbmp Ġ= Ġget Colo red Circ les ( context , ĠColor . WHITE , Ġalpha ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMy Widget Provider :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠTO GGLE ĊĊĠĠĠĠĠĠĠ Ġval Ġapp Widget Manager Ġ= ĠApp Widget Manager . getInstance ( context ) ĊĠĠĠĠĠĠĠ Ġapp Widget Manager . getApp Widget Ids ( getComponent Name ( context )). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviews Ġ= ĠRemote Views ( context . packageName , ĠR . layout . widget ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . get Broadcast ( context , Ġit , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . setOn Click Pending Intent ( R . id . flash light _ btn , Ġpending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . set ImageView Bitmap ( R . id . flash light _ btn , Ġbmp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager . update App Widget ( it , Ġviews ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Component Name ( context : ĠContext ) Ġ= ĠComponent Name ( context , ĠMy Widget Provider :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( intent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTO GGLE Ġ-> Ġtoggle Actual Flash light ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTO GGLE _ WIDGET _ UI Ġ-> Ġtoggle Flash light ( context , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Receive ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Actual Flash light ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Camera Impl . newInstance ( context ). toggle Flash light () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Flash light ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . extras ?. containsKey ( IS _ ENABLED ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenable Ġ= Ġintent . extras . getBoolean ( IS _ ENABLED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidget Bg Color Ġ= Ġcontext . config . widget Bg Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= ĠColor . alpha ( widget Bg Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Color Ġ= Ġif Ġ( enable ) Ġwidget Bg Color Ġelse ĠColor . WHITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbmp Ġ= Ġget Colo red Circ les ( context , Ġselected Color , Ġalpha ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Widget Manager Ġ= ĠApp Widget Manager . getInstance ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager . getApp Widget Ids ( getComponent Name ( context )). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviews Ġ= ĠRemote Views ( context . packageName , ĠR . layout . widget ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews . set ImageView Bitmap ( R . id . flash light _ btn , Ġbmp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Widget Manager . update App Widget ( it , Ġviews ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Colo red Circ les ( context : ĠContext , Ġcolor : ĠInt , Ġalpha : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġcontext . resources . get Colo red Drawable With Color ( R . drawable . circ les _ small , Ġcolor , Ġalpha ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . drawable To Bitmap ( drawable ) ĊĠĠĠ Ġ} Ċ } Ċ