/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠM ike ĠP enz Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" NOTH ING _ TO _ INLINE ", Ġ" Large Class ") Ċ Ċ package Ġcom . mike pen z . icon ics . utils Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . Color Int Ċ import Ġcom . mike pen z . icon ics . Icon ics Ċ import Ġcom . mike pen z . icon ics . Icon ics Color Ċ import Ġcom . mike pen z . icon ics . Icon ics Drawable Ċ import Ġcom . mike pen z . icon ics . Icon ics Size Ċ import Ġcom . mike pen z . icon ics . dsl . NON _ READ ABLE Ċ import Ġcom . mike pen z . icon ics . type face . I Icon Ċ import Ġcom . mike pen z . icon ics . type face . I Type face Ċ Ċ /** Ċ Ġ* ĠLoads Ġand Ġdraw s Ġgiven Ġtext Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . icon ( icon : ĠString ): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġif Ġ(! Icon ics . is Init Done ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" Icon ics Drawable ", Ġ" Icon ics . init () Ġnot Ġyet Ġexecuted , Ġicon Ġwill Ġbe Ġmissing ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfound Font Ġ= ĠIcon ics . find Font ( icon . icon Prefix ) ĊĠĠĠĠĠĠĠ Ġif Ġ( found Font Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" Icon ics Drawable ", Ġ" No Ġfont Ġidentified Ġmatching Ġthe Ġgiven Ġ`${ icon . icon Prefix }` Ġprefix ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon ( found Font . get Icon ( icon . cleared Icon Name )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIcon ics . logger . log ( Log . ERROR , ĠIcon ics . TAG , Ġ" Wrong Ġicon Ġname : Ġ$ icon ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠLoads Ġand Ġdraw s Ġgiven Ġicon Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . icon ( icon : ĠI Icon ): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġif Ġ(! Icon ics . is Init Done ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" Icon ics Drawable ", Ġ" Icon ics . init () Ġnot Ġyet Ġexecuted , Ġicon Ġwill Ġbe Ġmissing ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . icon Ġ= Ġicon ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠLoads Ġand Ġdraw s Ġgiven Ġicon Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . icon ( type face : ĠI Type face , Ġicon : ĠI Icon ): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġif Ġ(! Icon ics . is Init Done ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" Icon ics Drawable ", Ġ" Icon ics . init () Ġnot Ġyet Ġexecuted , Ġicon Ġwill Ġbe Ġmissing ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġicon Brush . paint . type face Ġ= Ġtype face . raw Type face ĊĠĠĠ Ġthis . icon Ġ= Ġicon ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠLoads Ġand Ġdraw s Ġgiven Ġtext Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . icon Text ( icon : ĠString , Ġtype face : ĠType face ? Ġ= Ġnull ): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġicon Brush . paint . type face Ġ= Ġtype face Ġ?: ĠType face . DEFAULT ĊĠĠĠ Ġicon Text Ġ= Ġicon ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠLoads Ġand Ġdraw s Ġgiven Ġchar Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . icon ( icon : ĠChar ): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġicon Text Ġ= Ġicon . toString () ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠSet Ġthe Ġsize Ġand Ġthe Ġpadding Ġto Ġthe Ġcorrect Ġvalues Ġto Ġbe Ġused Ġfor Ġthe Ġaction Bar Ġ/ Ġtool Bar Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcurrent ĠIcon ics Drawable Ġfor Ġchaining . Ċ Ġ*/ Ċ fun ĠIcon ics Drawable . action Bar (): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġsize Ġ= ĠIcon ics Size . TOOL BAR _ ICON _ SIZE ĊĠĠĠ Ġpadding Ġ= ĠIcon ics Size . TOOL BAR _ ICON _ P ADDING ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ var ĠIcon ics Drawable . color : ĠIcon ics Color ? ĊĠĠĠ Ġget () Ġ= Ġicon Brush . colors List ?. let Ġ{ ĠIcon ics Color . color List ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor List Ġ= Ġvalue ?. extract List ( res , Ġtheme ) ĊĠĠĠ Ġ} Ċ Ċ /** Ġ@ return Ġthe Ġicon Ġcurrent Ġcolor Ġfor Ġthe Ġcurrent Ġstate Ġ*/ Ċ var ĠIcon ics Drawable . color Int : ĠInt ĊĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġicon Brush . color For Current State ĊĠĠĠ Ġset (@ Color Int Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠIcon ics Color . color Int ( value ) ĊĠĠĠ Ġ} Ċ Ċ var ĠIcon ics Drawable . background Contour Color : ĠIcon ics Color ? ĊĠĠĠ Ġget () Ġ= Ġbackground Contour Brush . colors List ?. let Ġ{ ĠIcon ics Color . color List ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Contour Color List Ġ= Ġvalue ?. extract List ( res , Ġtheme ) ĊĠĠĠ Ġ} Ċ Ċ /** Ġ@ return Ġthe Ġicon Ġbackground Ġcontour Ġcolor Ġ*/ Ċ var ĠIcon ics Drawable . background Contour Color Int : ĠInt ĊĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġbackground Contour Brush . color For Current State ĊĠĠĠ Ġset (@ Color Int Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Contour Color Ġ= ĠIcon ics Color . color Int ( value ) ĊĠĠĠ Ġ} Ċ Ċ var ĠIcon ics Drawable . backgroundColor : ĠIcon ics Color ? ĊĠĠĠ Ġget () Ġ= Ġbackground Brush . colors List ?. let Ġ{ ĠIcon ics Color . color List ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ ĠbackgroundColor List Ġ= Ġvalue ?. extract List ( res , Ġtheme ) ĊĠĠĠ Ġ} Ċ Ċ /** Ġ@ return Ġthe Ġicon Ġbackground Ġcolor Ġ*/ Ċ var ĠIcon ics Drawable . backgroundColor Int : ĠInt ĊĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġbackground Brush . color For Current State ĊĠĠĠ Ġset (@ Color Int Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠIcon ics Color . color Int ( value ) ĊĠĠĠ Ġ} Ċ Ċ var ĠIcon ics Drawable . contour Color : ĠIcon ics Color ? ĊĠĠĠ Ġget () Ġ= Ġcontour Brush . colors List ?. let Ġ{ ĠIcon ics Color . color List ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontour Color List Ġ= Ġvalue ?. extract List ( res , Ġtheme ) ĊĠĠĠ Ġ} Ċ Ċ /** Ġ@ return Ġthe Ġicon Ġcontour Ġcolor Ġ*/ Ċ var ĠIcon ics Drawable . contour Color Int : ĠInt ĊĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġcontour Brush . color For Current State ĊĠĠĠ Ġset (@ Color Int Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontour Color Ġ= ĠIcon ics Color . color Int ( value ) ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . size Px : ĠInt ĊĠĠĠ Ġ@ Deprecated ( level Ġ= ĠDeprec ation Level . ERROR , Ġmessage Ġ= ĠNON _ READ ABLE ) ĊĠĠĠ Ġget () Ġ= Ġthrow ĠUnsupportedOperationException (" Please Ġget Ġeither Ġsize X Ġor Ġsize Y Ġdirectly ") ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsize XP x Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġsize YP x Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . size : ĠIcon ics Size ? ĊĠĠĠ Ġ@ Deprecated ( level Ġ= ĠDeprec ation Level . ERROR , Ġmessage Ġ= ĠNON _ READ ABLE ) ĊĠĠĠ Ġget () Ġ= Ġthrow ĠUnsupportedOperationException (" Please Ġget Ġeither Ġsize X Ġor Ġsize Y Ġdirectly ") ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( value ?. extract ( res ) Ġ?: Ġ- 1 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize XP x Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize YP x Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . size X : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġsize XP x . take If Ġ{ Ġit Ġ!= Ġ- 1 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsize XP x Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ- 1 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . size Y : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġsize YP x . take If Ġ{ Ġit Ġ!= Ġ- 1 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsize YP x Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ- 1 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġrounded Ġcorner Ġrx Ġas ĠIcon ics Size Ġ*/ Ċ var ĠIcon ics Drawable . rounded C orners Rx : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= ĠIcon ics Size . px ( rounded Corner Rx Px ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrounded Corner Rx Px Ġ= Ġvalue ?. extract Float ( res ) Ġ?: Ġ- 1 f ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġrounded Ġcorner Ġry Ġas ĠIcon ics Size Ġ*/ Ċ var ĠIcon ics Drawable . rounded C orners Ry : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= ĠIcon ics Size . px ( rounded Corner Ry Px ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrounded Corner Ry Px Ġ= Ġvalue ?. extract Float ( res ) Ġ?: Ġ- 1 f ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġrounded Ġcorner Ġrx Ġas ĠIcon ics Size Ġ*/ Ċ var ĠIcon ics Drawable . rounded C orners Px : ĠFloat ĊĠĠĠ Ġ@ Deprecated ( level Ġ= ĠDeprec ation Level . ERROR , Ġmessage Ġ= ĠNON _ READ ABLE ) ĊĠĠĠ Ġget () Ġ= Ġthrow ĠUnsupportedOperationException (" Please Ġget Ġeither Ġrounded Corner Rx Px Ġor Ġrounded Corner Ry Px Ġdirectly ") ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrounded Corner Rx Px Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġrounded Corner Ry Px Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġrounded Ġcorner Ġrx Ġand Ġry Ġas ĠIcon ics Size Ġ*/ Ċ var ĠIcon ics Drawable . rounded C orners : ĠIcon ics Size ? ĊĠĠĠ Ġ@ Deprecated ( level Ġ= ĠDeprec ation Level . ERROR , Ġmessage Ġ= ĠNON _ READ ABLE ) ĊĠĠĠ Ġget () Ġ= Ġthrow ĠUnsupportedOperationException (" Please Ġget Ġeither Ġrounded Corner Rx Px Ġor Ġrounded Corner Ry Px Ġdirectly ") ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( value ?. extract Float ( res ) Ġ?: Ġ 0 f ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrounded Corner Rx Px Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrounded Corner Ry Px Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . padding : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġpadding Px . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpadding Px Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . contour Width : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġcontour Width Px . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontour Width Px Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . background Contour Width : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġbackground Contour Width Px . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Contour Width Px Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . icon Offset X : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġicon Offset XP x . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġicon Offset XP x Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . icon Offset Y : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġicon Offset YP x . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġicon Offset YP x Ġ= Ġvalue ?. extract ( res ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . shadow Radius : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġshadow Radius Px . take If Ġ{ Ġit Ġ!= Ġ 0 f Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshadow Radius Px Ġ= Ġvalue ?. extract Float ( res ) Ġ?: Ġ 0 f ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . shadow Dx : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġshadow Dx Px . take If Ġ{ Ġit Ġ!= Ġ 0 f Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshadow Dx Px Ġ= Ġvalue ?. extract Float ( res ) Ġ?: Ġ 0 f ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . shadow Dy : ĠIcon ics Size ? ĊĠĠĠ Ġget () Ġ= Ġshadow Dy Px . take If Ġ{ Ġit Ġ!= Ġ 0 f Ġ} ?. let Ġ{ ĠIcon ics Size . px ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshadow Dy Px Ġ= Ġvalue ?. extract Float ( res ) Ġ?: Ġ 0 f ĊĠĠĠ Ġ} Ċ Ċ /** ĠSet Ġthe Ġsize Ġby ĠY Ġaxis Ġof Ġthe Ġdrawable .*/ Ċ var ĠIcon ics Drawable . shadow Color : ĠIcon ics Color ? ĊĠĠĠ Ġget () Ġ= Ġshadow Color Int . take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. let Ġ{ ĠIcon ics Color . color Int ( it ) Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshadow Color Int Ġ= Ġvalue ?. extract ( res , Ġtheme ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ /** ĠClear Ġthe Ġshadow Ġfor Ġthe Ġicon */ Ċ fun ĠIcon ics Drawable . clear Shadow (): ĠIcon ics Drawable Ġ{ ĊĠĠĠ Ġicon Brush . paint . clear Shadow Layer () ĊĠĠĠ Ġinvalidate This () ĊĠĠĠ Ġreturn Ġthis Ċ }