/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġandroidx . we ar . watch face . comp lications . rendering Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Filter Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Xml Ċ import Ġandroidx . annotation . Int Range Ċ import Ġandroidx . annotation . Px Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type . NO _ DATA Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type . NO _ PERMISSION Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type . RAN GED _ VALUE Ċ import Ġandroidx . we ar . comp lications . data . No Data Comp lication Data Ċ import Ġandroidx . we ar . watch face . Comp lication Helper Activity Ċ import Ġandroidx . we ar . watch face . comp lications . rendering . Comp lication Renderer . On Invalidate Listener Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Exception Ċ import Ġjava . io . IOException Ċ import Ġjava . time . Instant Ċ Ċ /** Ċ Ġ* ĠA Ġstyle able Ġdrawable Ġobject Ġthat Ġdraw s Ġcomp lication Slots . ĠYou Ġcan Ġcreate Ġa ĠComp lication Drawable Ġfrom Ċ Ġ* ĠXML Ġinfl ation Ġor Ġby Ġusing Ġone Ġof Ġthe Ġconstructor Ġmethods . Ċ Ġ* Ċ Ġ* Ġ< h 3 > Construct ing Ġa ĠComp lication Drawable </ h 3 > Ċ Ġ* Ċ Ġ* ĠTo Ġconstruct Ġa ĠComp lication Drawable Ġprogram matically , Ġuse Ġthe Ġ[ Comp lication Drawable ] Ċ Ġ* Ġconstructor . ĠAfter wards , Ġstyling Ġattributes Ġyou Ġwant Ġto Ġmodify Ċ Ġ* Ġcan Ġbe Ġset Ġvia Ġset Ġmethods . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġpublic Ġvoid ĠonCreate ( Surface Holder Ġholder ) Ġ{ Ċ Ġ* Ġ... Ċ Ġ* ĠComp lication Drawable Ġcomp lication Drawable Ġ= Ġnew ĠComp lication Drawable ( Watch Face Service . this ); Ċ Ġ* Ġcomp lication Drawable . set BackgroundColor Active ( backgroundColor ); Ċ Ġ* Ġcomp lication Drawable . setTextColor Active ( textColor ); Ċ Ġ* Ġ... Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ< h 3 > Construct ing Ġa ĠComp lication Drawable Ġfrom ĠXML </ h 3 > Ċ Ġ* Ċ Ġ* ĠConstruct ing Ġa ĠComp lication Drawable Ġfrom Ġan ĠXML Ġfile Ġmakes Ġit Ġeasier Ġto Ġmodify Ġmultiple Ċ Ġ* Ġstyling Ġattributes Ġat Ġonce Ġwithout Ġcalling Ġany Ġset Ġmethods . ĠYou Ġmay Ġalso Ġuse Ġdifferent ĠXML Ġfiles Ċ Ġ* Ġto Ġswitch Ġbetween Ġdifferent Ġstyles Ġyour Ġwatch Ġface Ġsupports . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTo Ġconstruct Ġa ĠComp lication Drawable Ġfrom Ġa Ġdrawable ĠXML Ġfile , Ġyou Ġmay Ġcreate Ġan ĠXML Ġfile Ġin Ċ Ġ* Ġyour Ġproject 's Ġ` res / drawable ` Ġfolder . ĠA ĠComp lication Drawable Ġwith Ġred Ġtext Ġand Ġwhite Ġtitle Ċ Ġ* Ġin Ġactive Ġmode , Ġand Ġwhite Ġtext Ġand Ġwhite Ġtitle Ġin Ġambient Ġmode Ġwould Ġlook Ġlike Ġthis : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> Ċ Ġ* Ġ< android . support . we arable . comp lication . rendering . Comp lication Drawable Ċ Ġ* Ġxmlns : app =" http :// schemas . android . com / apk / res - auto " Ċ Ġ* Ġapp : textColor ="# FFFF 0 0 0 0 " Ċ Ġ* Ġapp : title Color ="# FFFFFFFF "> Ċ Ġ* Ġ< ambient Ċ Ġ* Ġapp : textColor ="# FFFFFFFF " Ġ/> Ċ Ġ* Ġ</ android . support . we arable . comp lication . rendering . Comp lication Drawable > Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠA Ġtop - level Ġ` drawable ` Ġtag Ġwith Ġthe Ġ` class ` Ġattribute Ġmay Ġalso Ġbe Ġused Ġto Ċ Ġ* Ġconstruct Ġa ĠComp lication Drawable Ġfrom Ġan ĠXML Ġfile : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> Ċ Ġ* Ġ< drawable Ċ Ġ* Ġclass =" android . support . we arable . comp lication . rendering . Comp lication Drawable " Ċ Ġ* Ġxmlns : app =" http :// schemas . android . com / apk / res - auto " Ċ Ġ* Ġapp : textColor ="# FFFF 0 0 0 0 " Ċ Ġ* Ġapp : title Color ="# FFFFFFFF "> Ċ Ġ* Ġ< ambient Ċ Ġ* Ġapp : textColor ="# FFFFFFFF " Ġ/> Ċ Ġ* Ġ</ drawable > Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* ĠTo Ġinf late Ġa ĠComp lication Drawable Ġfrom ĠXML Ġfile , Ġuse Ġthe Ġ[. get Drawable ] Ċ Ġ* Ġmethod . ĠComp lication Drawable Ġneeds Ġaccess Ġto Ġthe Ġcurrent Ġcontext Ġin Ġorder Ġto Ġstyle Ġand Ġdraw Ċ Ġ* Ġthe Ġcomp lication . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġpublic Ġvoid ĠonCreate ( Surface Holder Ġholder ) Ġ{ Ċ Ġ* Ġ... Ċ Ġ* ĠComp lication Drawable Ġcomp lication Drawable Ġ= Ġ( Comp lication Drawable ) Ċ Ġ* Ġget Drawable ( R . drawable . comp lication ); Ċ Ġ* Ġcomp lication Drawable . set Context ( Watch Face Service . this ); Ċ Ġ* Ġ... Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ< h 4 > Syntax :</ h 4 > Ċ Ġ* Ġ``` Ċ Ġ* Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> Ċ Ġ* Ġ< android . support . we arable . comp lication . rendering . Comp lication Drawable Ċ Ġ* Ġxmlns : app =" http :// schemas . android . com / apk / res - auto " Ċ Ġ* Ġapp : backgroundColor =" color " Ċ Ġ* Ġapp : background Drawable =" drawable " Ċ Ġ* Ġapp : border Color =" color " Ċ Ġ* Ġapp : border Dash Gap =" dimension " Ċ Ġ* Ġapp : border Dash Width =" dimension " Ċ Ġ* Ġapp : border Radius =" dimension " Ċ Ġ* Ġapp : border Style =" none | solid | das hed " Ċ Ġ* Ġapp : border Width =" dimension " Ċ Ġ* Ġapp : highlight Color =" color " Ċ Ġ* Ġapp : icon Color =" color " Ċ Ġ* Ġapp : range d Value Primary Color =" color " Ċ Ġ* Ġapp : range d Value Progress Hidden =" boolean " Ċ Ġ* Ġapp : range d Value Ring Width =" dimension " Ċ Ġ* Ġapp : range d Value Secondary Color =" color " Ċ Ġ* Ġapp : textColor =" color " Ċ Ġ* Ġapp : text Size =" dimension " Ċ Ġ* Ġapp : text Type face =" string " Ċ Ġ* Ġapp : title Color =" color " Ċ Ġ* Ġapp : title Size =" dimension " Ċ Ġ* Ġapp : title Type face =" string "> Ċ Ġ* Ġ< ambient Ċ Ġ* Ġapp : backgroundColor =" color " Ċ Ġ* Ġapp : background Drawable =" drawable " Ċ Ġ* Ġapp : border Color =" color " Ċ Ġ* Ġapp : border Dash Gap =" dimension " Ċ Ġ* Ġapp : border Dash Width =" dimension " Ċ Ġ* Ġapp : border Radius =" dimension " Ċ Ġ* Ġapp : border Style =" none | solid | das hed " Ċ Ġ* Ġapp : border Width =" dimension " Ċ Ġ* Ġapp : highlight Color =" color " Ċ Ġ* Ġapp : icon Color =" color " Ċ Ġ* Ġapp : range d Value Primary Color =" color " Ċ Ġ* Ġapp : range d Value Ring Width =" dimension " Ċ Ġ* Ġapp : range d Value Secondary Color =" color " Ċ Ġ* Ġapp : textColor =" color " Ċ Ġ* Ġapp : text Size =" dimension " Ċ Ġ* Ġapp : text Type face =" string " Ċ Ġ* Ġapp : title Color =" color " Ċ Ġ* Ġapp : title Size =" dimension " Ċ Ġ* Ġapp : title Type face =" string " Ġ/> Ċ Ġ* Ġ</ android . support . we arable . comp lication . rendering . Comp lication Drawable > Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* ĠAttributes Ġof Ġthe Ġtop - level Ġtag Ġapply Ġto Ġboth Ġactive Ġand Ġambient Ġmodes Ġwhile Ġattributes Ġof Ġthe Ċ Ġ* Ġinner Ġ` ambient ` Ġtag Ġonly Ġapply Ġto Ġambient Ġmode . ĠAs Ġan Ġexception , Ġtop - level Ġonly Ċ Ġ* Ġ` range d Value Progress Hidden ` Ġattribute Ġapplies Ġto Ġboth Ġmodes , Ġand Ġcannot Ġbe Ġoverridden Ġin Ġambient Ċ Ġ* Ġmode . ĠTo Ġhide Ġrange d Ġvalue Ġin Ġonly Ġone Ġof Ġthe Ġactive Ġor Ġambient Ġmodes , Ġyou Ġmay Ġconsider Ġsetting Ċ Ġ* Ġ` range d Value Primary Color ` Ġand Ġ` range d Value Secondary Color ` Ġto Ġ[ android . graphics . Color . TRANSP ARENT ] Ċ Ġ* Ġinstead . Ċ Ġ* Ċ Ġ* Ġ< h 3 > Drawing Ġa ĠComp lication Drawable </ h 3 > Ċ Ġ* Ċ Ġ* ĠDep ending Ġon Ġthe Ġsize Ġand Ġshape Ġof Ġthe Ġbounds , Ġthe Ġlayout Ġof Ġthe Ġcomp lication Ġmay Ġchange . ĠFor Ċ Ġ* Ġinstance , Ġa Ġshort Ġtext Ġcomp lication Ġwith Ġan Ġicon Ġthat Ġis Ġdrawn Ġon Ġsquare Ġbounds Ġwould Ġdraw Ġthe Ċ Ġ* Ġicon Ġabove Ġthe Ġshort Ġtext , Ġbut Ġa Ġshort Ġtext Ġcomp lication Ġwith Ġan Ġicon Ġthat Ġis Ġdrawn Ġon Ġwide Ċ Ġ* Ġrect angular Ġbounds Ġmight Ġdraw Ġthe Ġicon Ġto Ġthe Ġleft Ġof Ġthe Ġshort Ġtext Ġinstead . Ċ Ġ*/ Ċ public Ġclass ĠComp lication Drawable Ġ: ĠDrawable Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġ[ Context ] Ġused Ġto Ġrender Ġthe Ġcomp lication . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĠReturns Ġcomp lication Ġrenderer . Ġ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ( otherwise Ġ= ĠVis ible ForTesting . NONE ) ĊĠĠĠ Ġ@ get : Jvm Name (" get Comp lication Renderer ") ĊĠĠĠ Ġinternal Ġvar Ġcomp lication Renderer : ĠComp lication Renderer ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĠReturns Ġcomp lication Ġstyle Ġfor Ġactive Ġmode . Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġactive Style : ĠComp lication Style ĊĊĠĠĠ Ġ/** ĠReturns Ġcomp lication Ġstyle Ġfor Ġambient Ġmode . Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġambient Style : ĠComp lication Style ĊĊĠĠĠ Ġprivate Ġval Ġmain Thread Handler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĠĠĠ Ġprivate Ġval Ġun highlight Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġis Highlight ed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġrenderer Invalidate Listener Ġ= ĠOn Invalidate Listener Ġ{ Ġinvalidate Self () Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġtime Ġin Ġmilliseconds Ġsince Ġthe Ġepoch Ġused Ġfor Ġrendering Ġ[ Comp lication Data ] Ġwith Ġtime ĊĠĠĠĠ Ġ* Ġdependent Ġtext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar ĠcurrentTime : ĠInstant Ġ= ĠInstant . EPOCH ĊĊĠĠĠ Ġ/** ĠWhether Ġthe Ġcomp lication Ġis Ġrendered Ġin Ġambient Ġmode . Ġ*/ ĊĠĠĠ Ġpublic Ġvar ĠisIn Ambient Mode : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhether Ġthe Ġcomp lication , Ġwhen Ġrendering Ġin Ġambient Ġmode , Ġshould Ġapply Ġa Ġstyle Ġsuitable Ġfor ĊĠĠĠĠ Ġ* Ġlow Ġbit Ġambient Ġmode . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġis Low Bit Ambient : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhether Ġthe Ġcomp lication , Ġwhen Ġrendering Ġin Ġambient Ġmode , Ġshould Ġapply Ġa Ġstyle Ġsuitable Ġfor ĊĠĠĠĠ Ġ* Ġdisplay Ġon Ġdevices Ġwith Ġburn Ġin Ġprotection . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġis Burn In Protection On : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhether Ġthe Ġcomp lication Ġis Ġcurrently Ġhighlighted . ĠThis Ġmay Ġbe Ġcalled Ġby Ġa Ġwatch Ġface Ġwhen ĊĠĠĠĠ Ġ* Ġa Ġcomp lication Ġis Ġt apped . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġwatch Ġface Ġis Ġin Ġambient Ġmode , Ġhighlight Ġwill Ġnot Ġbe Ġvisible Ġeven Ġif Ġthis Ġis Ġset Ġto ĊĠĠĠĠ Ġ* Ġ` true `, Ġbecause Ġit Ġmay Ġcause Ġburn - in Ġor Ġpower Ġin e fficiency . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġis Highlight ed : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar ĠisIn fl ated From Xml Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġalready Styled Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĠDefault Ġconstructor . Ġ*/ ĊĠĠĠ Ġpublic Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Style Ġ= ĠComp lication Style () ĊĠĠĠĠĠĠĠ Ġambient Style Ġ= ĠComp lication Style () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa ĠComp lication Drawable Ġusing Ġthe Ġgiven Ġcontext . ĠIf Ġthis Ġconstructor Ġis Ġused , Ġcalling ĊĠĠĠĠ Ġ* Ġ[ set Context ] Ġmay Ġnot Ġbe Ġnecessary . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe Ġ[ Context ] Ġused Ġto Ġrender Ġthe Ġcomp lication . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġconstructor ( context : ĠContext ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Context ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġconstructor ( drawable : ĠComp lication Drawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Style Ġ= ĠComp lication Style ( drawable . active Style ) ĊĠĠĠĠĠĠĠ Ġambient Style Ġ= ĠComp lication Style ( drawable . ambient Style ) ĊĠĠĠĠĠĠĠ Ġno Data Text Ġ= Ġdrawable . no Data Text !!. sub Sequence ( 0 , Ġdrawable . no Data Text !!. length ) ĊĠĠĠĠĠĠĠ Ġhighlight Duration Ġ= Ġdrawable . highlight Duration ĊĠĠĠĠĠĠĠ ĠcurrentTime Ġ= Ġdrawable . currentTime ĊĠĠĠĠĠĠĠ Ġbounds Ġ= Ġdrawable . bounds ĊĠĠĠĠĠĠĠ ĠisIn Ambient Mode Ġ= Ġdrawable . isIn Ambient Mode ĊĠĠĠĠĠĠĠ Ġis Low Bit Ambient Ġ= Ġdrawable . is Low Bit Ambient ĊĠĠĠĠĠĠĠ Ġis Burn In Protection On Ġ= Ġdrawable . is Burn In Protection On ĊĠĠĠĠĠĠĠ Ġis Highlight ed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġis Range d Value Progress Hidden Ġ= Ġdrawable . is Range d Value Progress Hidden ĊĠĠĠĠĠĠĠ ĠisIn fl ated From Xml Ġ= Ġdrawable . isIn fl ated From Xml ĊĠĠĠĠĠĠĠ Ġalready Styled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġ[ Context ] Ġused Ġto Ġrender Ġthe Ġcomp lication . ĠIf Ġa Ġcontext Ġis Ġnot Ġset , ĊĠĠĠĠ Ġ* ĠComp lication Drawable Ġwill Ġthrow Ġan Ġ[ IllegalStateException ] Ġif Ġone Ġof Ġ[ draw ], Ġ[ setBounds ], Ġor ĊĠĠĠĠ Ġ* Ġ[ set Comp lication Data ] Ġis Ġcalled . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhile Ġthis Ġcan Ġbe Ġcalled Ġfrom Ġany Ġcontext , Ġide ally , Ġa ĊĠĠĠĠ Ġ* Ġ[ android x . we ar . watch face . Watch Face Service ] Ġobject Ġshould Ġbe Ġpassed Ġhere Ġto Ġallow Ġcreating ĊĠĠĠĠ Ġ* Ġpermission Ġdialog s Ġby Ġthe Ġ[ on Tap ] Ġmethod , Ġin Ġcase Ġcurrent Ġwatch Ġface Ġdoesn 't Ġhave Ġthe ĊĠĠĠĠ Ġ* Ġpermission Ġto Ġreceive Ġcomp lication Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthis ĠComp lication Drawable Ġis Ġretrieved Ġusing Ġ[ Resources . get Drawable ], Ġthis Ġmethod Ġmust ĊĠĠĠĠ Ġ* Ġbe Ġcalled Ġbefore Ġcalling Ġany Ġof Ġthe Ġmethods Ġmentioned Ġabove . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthis ĠComp lication Drawable Ġis Ġnot Ġinfl ated Ġfrom Ġan ĠXML Ġfile , Ġthis Ġmethod Ġwill Ġreset Ġthe ĊĠĠĠĠ Ġ* Ġstyle Ġto Ġmatch Ġthe Ġdefault Ġvalues , Ġso Ġif ĠComp lication Drawable ( drawable : ĠComp lication Drawable ) ĊĠĠĠĠ Ġ* Ġis Ġused Ġto Ġconstruct Ġa ĠComp lication Drawable , Ġthis Ġmethod Ġshould Ġbe Ġcalled Ġright Ġafter . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe Ġ[ Context ] Ġused Ġto Ġrender Ġthe Ġcomp lication . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġset Context ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġthis . context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġif Ġ(! isIn fl ated From Xml Ġ&& Ġ! already Styled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Style To Default Values ( active Style , Ġcontext . resources ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Style To Default Values ( ambient Style , Ġcontext . resources ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! already Styled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight Duration Ġ= Ġcontext . resources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInteger ( R . integer . comp lication Drawable _ highlight Duration Ms ). to Long () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcomp lication Renderer Ġ= ĠComp lication Renderer ( this . context , Ġactive Style , Ġambient Style ) ĊĠĠĠĠĠĠĠ Ġval Ġnon Null Comp lication Renderer Ġ= Ġcomp lication Renderer !! ĊĠĠĠĠĠĠĠ Ġnon Null Comp lication Renderer . setOn Invalidate Listener ( renderer Invalidate Listener ) ĊĠĠĠĠĠĠĠ Ġif Ġ( no Data Text Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Data Text Ġ= Ġcontext . getString ( R . string . comp lication Drawable _ no Data Text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnon Null Comp lication Renderer . set No Data Text ( no Data Text ) ĊĠĠĠĠĠĠĠ Ġnon Null Comp lication Renderer . is Range d Value Progress Hidden Ġ= Ġis Range d Value Progress Hidden ĊĠĠĠĠĠĠĠ Ġnon Null Comp lication Renderer . bounds Ġ= Ġbounds ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinf late Attributes ( r : ĠResources , Ġparser : ĠXml Pull Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġr . obtain Attributes ( Xml . as Attribute Set ( parser ), ĠR . style able . Comp lication Drawable ) ĊĠĠĠĠĠĠĠ Ġis Range d Value Progress Hidden Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa . getBoolean ( R . style able . Comp lication Drawable _ range d Value Progress Hidden , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġa . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinf late Style ( is Ambient : ĠBoolean , Ġr : ĠResources , Ġparser : ĠXml Pull Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġr . obtain Attributes ( Xml . as Attribute Set ( parser ), ĠR . style able . Comp lication Drawable ) ĊĠĠĠĠĠĠĠ Ġval Ġcomp lication Style Ġ= Ġif Ġ( is Ambient ) Ġambient Style Ġelse Ġactive Style ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ backgroundColor )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . backgroundColor Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ backgroundColor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ backgroundColor , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ background Drawable )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . background Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . get Drawable ( R . style able . Comp lication Drawable _ background Drawable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ textColor )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . textColor Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ textColor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ textColor , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ title Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . title Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ title Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ title Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ text Type face )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . setText Type face ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . getString ( R . style able . Comp lication Drawable _ text Type face ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ title Type face )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . setTitle Type face ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . getString ( R . style able . Comp lication Drawable _ title Type face ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ text Size )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . text Size Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ text Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ title Size )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . title Size Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ title Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ title Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ icon Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . icon Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ icon Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ icon Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ border Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Radius )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Radius Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Radius , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Radius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Style )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Style Ġ= Ġa . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Style , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getInteger ( R . integer . comp lication Drawable _ border Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Dash Width )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Dash Width Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Dash Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Dash Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Dash Gap )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Dash Gap Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Dash Gap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Dash Gap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ border Width )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . border Width Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ border Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ range d Value Ring Width )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . range d Value Ring Width Ġ= Ġa . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ range d Value Ring Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . dim en . comp lication Drawable _ range d Value Ring Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ range d Value Primary Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . range d Value Primary Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ range d Value Primary Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . comp lication Drawable _ range d Value Primary Color , Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ range d Value Secondary Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . range d Value Secondary Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ range d Value Secondary Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . comp lication Drawable _ range d Value Secondary Color , Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Comp lication Drawable _ highlight Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Style . highlight Color Ġ= Ġa . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Comp lication Drawable _ highlight Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ highlight Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġa . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIn fl ates Ġthis ĠComp lication Drawable Ġfrom Ġan ĠXML Ġresource . ĠThis Ġcan 't Ġbe Ġcalled Ġmore Ġthan Ġonce ĊĠĠĠĠ Ġ* Ġfor Ġeach ĠComp lication Drawable . ĠNote Ġthat Ġframework Ġmay Ġhave Ġcalled Ġthis Ġonce Ġto Ġcreate Ġthe ĊĠĠĠĠ Ġ* ĠComp lication Drawable Ġinstance Ġfrom Ġan ĠXML Ġresource . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġr ĠĠĠĠĠ ĠResources Ġused Ġto Ġresolve Ġattribute Ġvalues ĊĠĠĠĠ Ġ* Ġ@ param Ġparser ĠXML Ġparser Ġfrom Ġwhich Ġto Ġinf late Ġthis ĠComp lication Drawable ĊĠĠĠĠ Ġ* Ġ@ param Ġattrs Ġ ĠBase Ġset Ġof Ġattribute Ġvalues ĊĠĠĠĠ Ġ* Ġ@ param Ġtheme Ġ ĠIgnore d Ġby ĠComp lication Drawable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Xml Pull Parser Exception :: class , ĠIOException :: class ) ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġinf late ( ĊĠĠĠĠĠĠĠ Ġr : ĠResources , ĊĠĠĠĠĠĠĠ Ġparser : ĠXml Pull Parser , ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet , ĊĠĠĠĠĠĠĠ Ġtheme : ĠResources . Theme ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck (! isIn fl ated From Xml ) Ġ{ Ġ" inflate Ġmay Ġbe Ġcalled Ġonce Ġonly ." Ġ} ĊĠĠĠĠĠĠĠ ĠisIn fl ated From Xml Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġouter Depth Ġ= Ġparser . depth ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġattributes Ġalways Ġshared Ġbetween Ġactive Ġand Ġambient Ġmode ĊĠĠĠĠĠĠĠ Ġinf late Attributes ( r , Ġparser ) ĊĠĠĠĠĠĠĠ Ġ// ĠReset Ġboth Ġstyle Ġbuild ers Ġto Ġdefault Ġvalues ĊĠĠĠĠĠĠĠ Ġset Style To Default Values ( active Style , Ġr ) ĊĠĠĠĠĠĠĠ Ġset Style To Default Values ( ambient Style , Ġr ) ĊĠĠĠĠĠĠĠ Ġ// ĠAttributes Ġof Ġthe Ġouter Ġtag Ġapplies Ġto Ġboth Ġactive Ġand Ġambient Ġstyles ĊĠĠĠĠĠĠĠ Ġinf late Style ( false , Ġr , Ġparser ) ĊĠĠĠĠĠĠĠ Ġinf late Style ( true , Ġr , Ġparser ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . next (). also Ġ{ Ġtype Ġ= Ġit Ġ} Ġ!= ĠXml Pull Parser . END _ DOCUMENT Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( type Ġ!= ĠXml Pull Parser . END _ TAG Ġ|| Ġparser . depth Ġ> Ġouter Depth ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= ĠXml Pull Parser . START _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAttributes Ġof Ġinner Ġ< ambient > Ġtag Ġapplies Ġto Ġambient Ġstyle Ġonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġparser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . equals ( name , Ġ" ambient ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinf late Style ( true , Ġr , Ġparser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Comp lication Drawable ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown Ġelement : Ġ$ name Ġfor ĠComp lication Drawable Ġ$ this " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw s Ġthe Ġcomp lication Ġfor Ġthe Ġlast Ġknown Ġtime . ĠLast Ġknown Ġtime Ġis Ġderived Ġfrom ĊĠĠĠĠ Ġ* ĠComp lication Drawable # setCurrent Time Millis ( long )}. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĠCanvas Ġfor Ġthe Ġcomp lication Ġto Ġbe Ġdrawn Ġonto ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Initialized () ĊĠĠĠĠĠĠĠ Ġupdate Style If Required () ĊĠĠĠĠĠĠĠ Ġcomp lication Renderer ?. draw ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn Ambient Mode , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Low Bit Ambient , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Burn In Protection On , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Highlight ed ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġis Ġnot Ġsupported Ġin Ġ[ Comp lication Drawable ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws Ġ[ Unsupported OperationException ] Ġwhen Ġcalled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġset Alpha (@ Int Range ( from Ġ= Ġ 0 , Ġto Ġ= Ġ 2 5 5 ) Ġalpha : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" set Alpha Ġis Ġnot Ġsupported Ġin ĠComp lication Drawable .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġis Ġnot Ġsupported Ġin Ġ[ Comp lication Drawable ]. ĠUse ĊĠĠĠĠ Ġ* Ġ[ Comp lication Style . image Color Filter ] Ġinstead Ġto Ġapply Ġcolor Ġfilter Ġto Ġsmall Ġand Ġlarge Ġimages . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws Ġ[ Unsupported OperationException ] Ġwhen Ġcalled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġset Color Filter ( color Filter : ĠColor Filter ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" setColor Filter Ġis Ġnot Ġsupported Ġin ĠComp lication Drawable ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" This Ġmethod Ġis Ġno Ġlonger Ġused Ġin Ġgraphics Ġoptimizations ") ĊĠĠĠ Ġoverride Ġfun Ġget Opacity (): ĠInt Ġ= ĠPixel Format . OP A QUE ĊĊĠĠĠ Ġprotected Ġoverride Ġfun Ġon Bounds Change ( bounds : ĠRect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomp lication Renderer ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . bounds Ġ= Ġbounds ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠIf Ġthe Ġrange d Ġvalue Ġprogress Ġshould Ġbe Ġhidden Ġwhen Ġ[ Comp lication Data ] Ġis Ġof Ġtype ĊĠĠĠĠ Ġ* Ġ[ RAN GED _ VALUE ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ attr Ġref Ġandroidx . we ar . watch face . comp lication Slots . rendering . R ĊĠĠĠĠ Ġ* Ġ. style able # Comp lication Drawable _ range d Value Progress Hidden ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġis Range d Value Progress Hidden : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( range d Value Progress Hidden ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġrange d Value Progress Hidden ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Renderer ?. is Range d Value Progress Hidden Ġ= Ġrange d Value Progress Hidden ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġcomp lication Ġdata Ġto Ġbe Ġdrawn . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcomp lication Data ĠThe Ġ[ Comp lication Data ] Ġto Ġset ĊĠĠĠĠ Ġ* Ġ@ param Ġload Draw ables Async ĠIf Ġtrue Ġany Ġdraw ables Ġshould Ġbe Ġloaded Ġasynchronously , ĊĠĠĠĠ Ġ* Ġotherwise Ġthey Ġwill Ġbe Ġloaded Ġsynchronous ly . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġset Comp lication Data ( ĊĠĠĠĠĠĠĠ Ġcomp lication Data : ĠComp lication Data , ĊĠĠĠĠĠĠĠ Ġload Draw ables Async : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . comp lication Data Ġ= Ġcomp lication Data ĊĠĠĠĠĠĠĠ Ġassert Initialized () ĊĠĠĠĠĠĠĠ Ġif Ġ( load Draw ables Async ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCalling Ġnext Renderer . set Comp lication Data () Ġcauses Ġit Ġto Ġrender Ġas Ġblank Ġuntil Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġasync Ġload Ġhas Ġcompleted . ĠTo Ġmask Ġthis Ġwe Ġdelay Ġapplying Ġthe Ġupdate Ġuntil Ġthe Ġload ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhas Ġcompleted . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Renderer Ġ= ĠComp lication Renderer ( this . context , Ġactive Style , Ġambient Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . set No Data Text ( no Data Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . is Range d Value Progress Hidden Ġ= Ġis Range d Value Progress Hidden ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . bounds Ġ= Ġbounds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . setOn Invalidate Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Renderer Ġ= Ġnext Renderer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrenderer Invalidate Listener . on Invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReplace Ġthis ĠIn validate Listener Ġwith Ġthe Ġnormal Ġone . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . setOn Invalidate Listener ( renderer Invalidate Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Renderer . set Comp lication Data ( comp lication Data . as Wire Comp lication Data (), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Renderer ?. set Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Data . as Wire Comp lication Data (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġ[ Comp lication Data ] Ġto Ġbe Ġdrawn Ġby Ġthis ĠComp lication Drawable . ĠThis Ġdefaults Ġto ĊĠĠĠĠ Ġ* Ġ[ No Data Comp lication Data ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġcomp lication Data : ĠComp lication Data Ġ= ĠNo Data Comp lication Data () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcomp lication Renderer ?. set Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Data . as Wire Comp lication Data (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġthe Ġtap Ġaction Ġfor Ġthe Ġcomp lication Ġif Ġtap Ġcoordinates Ġare Ġinside Ġthe Ġcomp lication ĊĠĠĠĠ Ġ* Ġbounds . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġwill Ġalso Ġhighlight Ġthe Ġcomp lication . ĠThe Ġhighlight Ġduration Ġis Ġ 3 0 0 ĊĠĠĠĠ Ġ* Ġmilliseconds Ġby Ġdefault Ġbut Ġcan Ġbe Ġmodified Ġusing Ġthe Ġ[. set Highlight Duration ] ĊĠĠĠĠ Ġ* Ġmethod . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ[ Comp lication Data ] Ġhas Ġthe Ġtype Ġ[ NO _ PERMISSION ], Ġthis Ġmethod Ġwill Ġlaunch Ġan Ġintent Ġto ĊĠĠĠĠ Ġ* Ġrequest Ġcomp lication Ġpermission Ġfor Ġthe Ġwatch Ġface . ĠThis Ġwill Ġonly Ġwork Ġif Ġthe Ġcontext Ġset ĊĠĠĠĠ Ġ* Ġby Ġ[ get Drawable ] Ġor Ġthe Ġconstructor Ġis Ġan Ġinstance Ġof ĠWatch Face Service . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġx ĠX Ġcoordinate Ġof Ġthe Ġtap Ġrelative Ġto Ġscreen Ġorigin ĊĠĠĠĠ Ġ* Ġ@ param Ġy ĠY Ġcoordinate Ġof Ġthe Ġtap Ġrelative Ġto Ġscreen Ġorigin ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġaction Ġwas Ġsuccessful , Ġ` false ` Ġif Ġcomp lication Ġdata Ġis Ġnot Ġset , Ġthe ĊĠĠĠĠ Ġ* Ġcomp lication Ġhas Ġno Ġtap Ġaction , Ġthe Ġtap Ġaction Ġ( i . e . Ġ[ android . app . Pending Intent ]) Ġis ĊĠĠĠĠ Ġ* Ġcancelled , Ġor Ġthe Ġgiven Ġx Ġand Ġy Ġare Ġnot Ġinside Ġthe Ġcomp lication Ġbounds . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun ĠonTap (@ Px Ġx : ĠInt , Ġ@ Px Ġy : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( comp lication Renderer Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġcomp lication Renderer !!. comp lication Data Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! data . has Tap Action () Ġ&& Ġdata . type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ!= Ġandroid . support . we arable . comp lications . Comp lication Data . TYPE _ NO _ PERMISSION ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! bounds . contains ( x , Ġy )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( data . type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ== Ġandroid . support . we arable . comp lications . Comp lication Data . TYPE _ NO _ PERMISSION ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġcontext Ġis Ġan Ġinstance Ġof ĠWatch Face Service . ĠWe Ġcan 't Ġuse Ġthe Ġstandard ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinstanceof Ġoperator Ġbecause ĠWatch Face Service Ġis Ġdefined Ġin Ġlibrary Ġwhich Ġdepends Ġon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthis Ġone , Ġhence Ġthe Ġreflection Ġhack . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context !! :: class . java . name Ġ== Ġ" android x . we ar . watch face . Watch Face Service ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Helper Activity . create Permission Request Helper Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Name ( context !! , Ġcontext !!. java Class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwatch Face Service Class Ġclass Ġisn 't Ġfound Ġwe Ġknow Ġcontext Ġcan 't Ġbe Ġan Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġof ĠWatch Face Service . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . tap Action !!. send () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPending Intent . Canceled Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( highlight Duration Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Highlight ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Thread Handler . remove Callbacks ( un highlight Runnable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Thread Handler . post Delayed ( un highlight Runnable , Ġhighlight Duration ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠThe Ġduration Ġfor Ġthe Ġcomp lication Ġto Ġstay Ġhighlighted Ġafter Ġcalling Ġthe Ġ[ on Tap ] Ġmethod . ĊĠĠĠĠ Ġ* ĠDefault Ġvalue Ġis Ġ 3 0 0 Ġmilliseconds . ĠSetting Ġhighlight Ġduration Ġto Ġ 0 Ġdisables Ġhighlighting . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġhighlight Duration : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset (@ Int Range ( from Ġ= Ġ 0 ) Ġhighlight Duration Millis : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( highlight Duration Millis Ġ>= Ġ 0 ) Ġ{ Ġ" Highlight Ġduration Ġshould Ġbe Ġnon - negative ." Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġhighlight Duration Millis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠBuilds Ġstyles Ġand Ġsync s Ġthem Ġwith Ġthe Ġcomp lication Ġrenderer . Ġ Ġ*/ ĊĠĠĠ Ġ@ Jvm Name ( name Ġ= Ġ" update Style If Required ") ĊĠĠĠ Ġinternal Ġfun Ġupdate Style If Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( active Style . is Dirty Ġ|| Ġambient Style . is Dirty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Renderer !!. update Style ( active Style , Ġambient Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Style . clear Dirty Flag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġambient Style . clear Dirty Flag () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThrows Ġan Ġexception Ġif Ġthe Ġcontext Ġis Ġnot Ġset . ĠThis Ġmethod Ġshould Ġbe Ġcalled Ġif Ġany Ġof Ġthe ĊĠĠĠĠ Ġ* Ġmember Ġmethods Ġdo Ġa Ġcontext - dependent Ġjob . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġassert Initialized () Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Comp lication Drawable Ġdoes Ġnot Ġhave Ġa Ġcontext . ĠUse Ġset Context ( Context ) Ġto Ġset Ġit Ġfirst ." ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġtext Ġto Ġbe Ġrendered Ġwhen Ġ[ Comp lication Data ] Ġis Ġof Ġtype Ġ[ NO _ DATA ]. ĠIf Ġ` no Data Text ` Ġis ĊĠĠĠĠ Ġ* Ġnull , Ġan Ġempty Ġtext Ġwill Ġbe Ġrendered . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġno Data Text : ĠCharSequence ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( no Data Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġno Data Text ?. sub Sequence ( 0 , Ġno Data Text . length ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comp lication Renderer Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Renderer !!. set No Data Text ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġa ĠComp lication Drawable Ġfrom Ġa Ġresource . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe Ġ[ Context ] Ġto Ġload Ġthe Ġresource Ġfrom ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġid ĠĠĠĠĠ ĠThe Ġid Ġof Ġthe Ġresource Ġto Ġload ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġ[ Comp lication Drawable ] Ġloaded Ġfrom Ġthe Ġspecified Ġresource Ġid Ġor Ġnull Ġif Ġit ĊĠĠĠĠĠĠĠĠ Ġ* Ġdoesn 't Ġexist . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġget Drawable ( context : ĠContext , Ġid : ĠInt ): ĠComp lication Drawable ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġcontext . get Drawable ( id ) Ġas ĠComp lication Drawable ? Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . set Context ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdrawable ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠSets Ġthe Ġstyle Ġto Ġdefault Ġvalues Ġusing Ġresources . Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġset Style To Default Values ( style : ĠComp lication Style , Ġr : ĠResources ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . backgroundColor Ġ= Ġr . getColor ( R . color . comp lication Drawable _ backgroundColor , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . textColor Ġ= Ġr . getColor ( R . color . comp lication Drawable _ textColor , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . title Color Ġ= Ġr . getColor ( R . color . comp lication Drawable _ title Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . setText Type face ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getString ( R . string . comp lication Drawable _ text Type face ), ĠType face . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . setTitle Type face ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType face . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getString ( R . string . comp lication Drawable _ title Type face ), ĠType face . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . text Size Ġ= Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ text Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . title Size Ġ= Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ title Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . icon Color Ġ= Ġr . getColor ( R . color . comp lication Drawable _ icon Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Color Ġ= Ġr . getColor ( R . color . comp lication Drawable _ border Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Width Ġ= Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Radius Ġ= Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Radius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Style Ġ= Ġr . getInteger ( R . integer . comp lication Drawable _ border Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Dash Width Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Dash Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . border Dash Gap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ border Dash Gap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . range d Value Ring Width Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . get Dimension Pixel Size ( R . dim en . comp lication Drawable _ range d Value Ring Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . range d Value Primary Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ range d Value Primary Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . range d Value Secondary Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr . getColor ( R . color . comp lication Drawable _ range d Value Secondary Color , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . highlight Color Ġ= Ġr . getColor ( R . color . comp lication Drawable _ highlight Color , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ