package Ġcom . silver het ch . dashboard 1 2 8 . image widget Ċ Ċ import Ġandroid . app . Pending Intent .* Ċ import Ġandroid . app widget . App Widget Manager . EXTRA _ APP WIDGET _ ID Ċ import Ġandroid . app widget . App Widget Manager . getInstance Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroidx . core . app . Job Intent Service Ċ import Ġcom . ca ver ock . android svg . SVG Ċ import Ġcom . silver het ch . dashboard 1 2 8 . R Ċ import Ġcom . silver het ch . dashboard 1 2 8 . image widget . model . Image Widgets Impl Ċ import Ġcom . silver het ch . dashboard 1 2 8 . services . Service Job ĊĊ Ċ /** Ċ Ġ* ĠUpdate Ġbadge Ġimage Ġfrom Ġgiven Ġsource . Ċ Ġ*/ Ċ class ĠWidget Update Service Ġ: ĠJob Intent Service () Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠARG _ WIDGET _ IDX Ġ= Ġ" ARG _ WIDGET _ IDX " ĊĊĠĠĠ Ġfun Ġenqueue ( context : ĠContext , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠ ĠJob Intent Service . enqueue Work ( ĊĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠ ĠWidget Update Service :: class . java , ĊĠĠĠĠĠĠĠĠĠ ĠService Job . ID _ IMAGE _ WIDGET _ UPDATE _ SERVICE , ĊĠĠĠĠĠĠĠĠĠ ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( ARG _ WIDGET _ IDX , Ġindex ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĊĠ Ġoverride Ġfun Ġon Handle Work ( intent : ĠIntent ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ ĠImage Widgets Impl ( this ). widget ( ĊĠĠĠĠĠĠĠĠĠ Ġintent . getInt Extra ( ARG _ WIDGET _ IDX , Ġ- 1 ) ĊĠĠĠĠĠ Ġ). let Ġ{ Ġwidget Ġ-> ĊĠĠĠĠĠĠĠ Ġwidget . validate () ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠSVG . get From InputStream ( widget . file (). inputStream ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( image . document Width Ġ== Ġ- 1 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠgetInstance ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġupdate App Widget ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget . id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemote Views ( packageName , ĠR . layout . widget _ image ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClick Pending Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . widget Image _ image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Widget Update Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget . id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Widget Update Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Widget Configuration Activity :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX TRA _ APP WIDGET _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget . id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ImageView Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . widget Image _ image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . create Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath . ceil ( image . document Width . toDouble ()). toInt () Ġ* Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath . ceil ( image . document Height . toDouble ()). toInt () Ġ* Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . set Document View Box ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . document Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . document Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . set Document Width (" 1 0 0 % ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . set Document Height (" 1 0 0 % ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . render To Canvas ( Canvas ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġignore . printStackTrace () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }