package Ġcom . ct ech . messenger . widget ; Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . content . res . Resources . NotFoundException Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap . Config Ċ import Ġandroid . graphics . Bitmap Shader Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Filter Ċ import Ġandroid . graphics . Matrix Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Path Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . graphics . Shader Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . Layer Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . annotation . Dim en Res Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . ct ech . messenger . R ĊĊ Ċ class ĠRo unded ImageView Ġ: ĠAppCompat ImageView Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Resource Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm Rad ii Ġ= Ġfloat ArrayOf ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Rounded ImageView ) ĊĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġta . get Dimension ( R . style able . Rounded ImageView _ radius , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠĠĠĠĠ Ġset C orners ( radius , Ġradius , Ġradius , Ġradius ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġdrawable StateChanged () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . drawable StateChanged () ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Image Drawable ( drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Resource Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm Drawable Ġ= ĠRo unded Corner Drawable . from Drawable ( drawable , Ġresources ) ĊĠĠĠĠĠĠĠ Ġsuper . setImage Drawable ( m Drawable ) ĊĠĠĠĠĠĠĠ Ġupdate Drawable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Image Bitmap ( bm : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Resource Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm Drawable Ġ= ĠRo unded Corner Drawable . from Bitmap ( bm , Ġresources ) ĊĠĠĠĠĠĠĠ Ġsuper . setImage Drawable ( m Drawable ) ĊĠĠĠĠĠĠĠ Ġupdate Drawable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Image Resource ( res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Resource Ġ!= Ġres Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Resource Ġ= Ġres Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawable Ġ= Ġresolve Resource () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . setImage Drawable ( m Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Drawable () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Image URI ( uri : ĠUri ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setImage URI ( uri ) ĊĠĠĠĠĠĠĠ Ġset Image Drawable ( drawable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset C orners (@ Dim en Res Ġleft Top : ĠInt , Ġ@ Dim en Res Ġright Top : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Dim en Res Ġright Bottom : ĠInt , Ġ@ Dim en Res Ġleft Bottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset C orners ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( left Top Ġ== Ġ 0 ) Ġ 0 F Ġelse Ġresources . get Dimension ( left Top ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( right Top Ġ== Ġ 0 ) Ġ 0 F Ġelse Ġresources . get Dimension ( right Top ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( right Bottom Ġ== Ġ 0 ) Ġ 0 F Ġelse Ġresources . get Dimension ( right Bottom ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( left Bottom Ġ== Ġ 0 ) Ġ 0 F Ġelse Ġresources . get Dimension ( left Bottom ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset C orners ( left Top : ĠFloat , Ġright Top : ĠFloat , Ġright Bottom : ĠFloat , Ġleft Bottom : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Rad ii Ġ= Ġfloat ArrayOf ( left Top , Ġleft Top , Ġright Top , Ġright Top , Ġright Bottom , Ġright Bottom , Ġleft Bottom , Ġleft Bottom ) ĊĊĠĠĠĠĠĠĠ Ġupdate Drawable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresolve Resource (): ĠDrawable ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġd : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Resource Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Ġ= ĠContext Compat . get Drawable ( context , Ġm Resource ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNotFound Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Resource Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠRo unded Corner Drawable . from Drawable ( d , Ġresources ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Drawable () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Drawable Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġ( m Drawable Ġas ĠRo unded Corner Drawable ). set Corner Rad ii ( m Rad ii ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠRo unded Corner Drawable Ġprivate Ġconstructor ( private Ġval Ġm Bitmap : ĠBitmap , Ġr : ĠResources ) Ġ: ĠDrawable () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bounds Ġ= ĠRect F () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bitmap Rect Ġ= ĠRect F () ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bitmap Width : ĠInt Ġ= Ġm Bitmap . getS ca led Width ( r . display Metrics ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bitmap Height : ĠInt Ġ= Ġm Bitmap . getS ca led Height ( r . display Metrics ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bitmap Paint : ĠPaint ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Bitmap Shader : ĠBitmap Shader Ġ= ĠBitmap Shader ( m Bitmap , ĠShader . Tile Mode . CLAMP , ĠShader . Tile Mode . CLAMP ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Rad ii Ġ= Ġfloat ArrayOf ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Path Ġ= ĠPath () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Bounds Configured Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Rect . set ( 0 f , Ġ 0 f , Ġm Bitmap Width . toFloat (), Ġm Bitmap Height . toFloat ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . shader Ġ= Ġm Bitmap Shader ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Bitmap ( bitmap : ĠBitmap ?, Ġr : ĠResources ): ĠRo unded Corner Drawable ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( bitmap Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRo unded Corner Drawable ( bitmap , Ġr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Drawable ( drawable : ĠDrawable ?, Ġr : ĠResources ): ĠDrawable ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġis ĠRo unded Corner Drawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdrawable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( drawable Ġis ĠLayer Drawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġld Ġ= Ġdrawable Ġas ĠLayer Drawable ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Ġ= Ġld !!. numberOf Layers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġld . get Drawable ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġld . set Drawable By Layer Id ( ld . getId ( i ), Ġfrom Drawable ( d , Ġr )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġld ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbm Ġ= Ġdrawable To Bitmap ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bm Ġ!= Ġnull ) Ġreturn ĠRo unded Corner Drawable ( bm , Ġr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdrawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdrawable To Bitmap ( drawable : ĠDrawable ?): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġ== Ġnull ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġis ĠBitmap Drawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdrawable . bitmap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbitmap : ĠBitmap ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠMath . max ( drawable . intrinsic Width , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠMath . max ( drawable . intrinsic Height , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠConfig . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bitmap !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġcanvas . width , Ġcanvas . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġconfigure Bounds ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Matrix Ġ= Ġcanvas . matrix ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Scale To Rad ii ( canvas Matrix ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bounds . set ( m Bitmap Rect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġapply Scale To Rad ii ( m : ĠMatrix ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠFloat Array ( 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm . getValues ( values ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġm Rad ii . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Rad ii [ i ] Ġ= Ġm Rad ii [ i ] Ġ/ Ġvalues [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! m Bounds Configured ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Bounds ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bounds Configured Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Path . add Round Rect ( m Bounds , Ġm Rad ii , ĠPath . Direction . CW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Path ( m Path , Ġm Bitmap Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġset Corner Rad ii ( rad ii : ĠFloat Array ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rad ii Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rad ii . size Ġ!= Ġ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠArray Index OutOfBoundsException (" rad ii [] Ġneeds Ġ 8 Ġvalues ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . arraycopy ( rad ii , Ġ 0 , Ġm Rad ii , Ġ 0 , Ġrad ii . size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Opacity (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Bitmap . has Alpha () Ġ|| Ġm Bitmap Paint . alpha Ġ< Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . TRANSL UC ENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . OP A QUE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Alpha ( alpha : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . alpha Ġ= Ġalpha ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Color Filter ( cf : ĠColor Filter ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . color Filter Ġ= Ġcf ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset D ither ( d ither : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . is D ither Ġ= Ġd ither ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Filter Bitmap ( filter : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Paint . is Filter Bitmap Ġ= Ġfilter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Intr insic Width (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Bitmap Width ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Intr insic Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Bitmap Height ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }