package Ġv ip . m yst ery 0 . feedback view . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġv ip . m yst ery 0 . feedback view . R Ċ import Ġv ip . m yst ery 0 . tools . getT Color Ċ Ċ class ĠCircle Percent View Ġ: ĠView Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġprogress Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġradius Ġ= Ġ 0 ĊĠĠĠ Ġ// åľĨ å¿ĥ åĿĲæłĩ ĊĠĠĠ Ġprivate Ġvar Ġcenter X Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġcenter Y Ġ= Ġ 0 F ĊĠĠĠ Ġ// æĢ» ä½ĵ å¤§å°ı ĊĠĠĠ Ġprivate Ġvar Ġm Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Width Ġ= Ġ 0 ĊĠĠĠ Ġ// è¦ģ çĶ» çļĦ å¼ § åº¦ ĊĠĠĠ Ġprivate Ġvar Ġm End Angle Ġ= Ġ 0 F ĊĊĠĠĠ Ġprivate Ġval Ġcircle Paint Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġsector Paint Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġbackground Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġprivate Ġvar Ġdraw Background Ġ= Ġtrue ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Style ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Style ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcircle Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcircle Paint . color Ġ= Ġcontext . getT Color ( R . color . progress Color ) ĊĠĠĠĠĠĠĠ Ġcircle Paint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġcircle Paint . stroke Width Ġ= Ġ 2 F ĊĠĠĠĠĠĠĠ Ġsector Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsector Paint . color Ġ= Ġcontext . getT Color ( R . color . progress Color ) ĊĠĠĠĠĠĠĠ Ġsector Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġbackground Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbackground Paint . color Ġ= Ġcontext . getT Color ( R . color . backgroundColor ) ĊĠĠĠĠĠĠĠ Ġbackground Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Style ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Circle Percent View ) ĊĠĠĠĠĠĠĠ Ġradius Ġ= Ġtyped Array . get Dimension Pixel Size ( R . style able . Circle Percent View _ radius , Ġ 3 6 ) ĊĠĠĠĠĠĠĠ Ġdraw Background Ġ= Ġtyped Array . getBoolean ( R . style able . Circle Percent View _ draw Background , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Progress ( progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ<= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . progress Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ>= Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . progress Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ æµĭ éĩı æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġval Ġwidth Mode Ġ= ĠMeasure Spec . get Mode ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Mode Ġ= ĠMeasure Spec . get Mode ( height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ æµĭ éĩı å¤§å°ı ĊĠĠĠĠĠĠĠ Ġval Ġwidth Size Ġ= ĠMeasure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Size Ġ= ĠMeasure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġif Ġ( width Mode Ġ== ĠMeasure Spec . EX ACT LY Ġ&& Ġheight Mode Ġ== ĠMeasure Spec . EX ACT LY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ= Ġ( width Size Ġ/ Ġ 2 ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ= Ġ( height Size Ġ/ Ġ 2 ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Width Ġ= Ġwidth Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Height Ġ= Ġheight Size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( width Mode Ġ== ĠMeasure Spec . AT _ MO ST Ġ&& Ġheight Mode Ġ== ĠMeasure Spec . AT _ MO ST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Width Ġ= Ġradius Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Height Ġ= Ġradius Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ= Ġradius . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ= Ġradius . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( m Width , Ġm Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm End Angle Ġ= Ġprogress Ġ* Ġ 3 . 6 F ĊĠĠĠĠĠĠĠ Ġif Ġ( draw Background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Color ( context . getT Color ( R . color . backgroundColor )) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( center X , Ġcenter Y , Ġradius Ġ+ Ġ 3 0 F , Ġbackground Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( center X , Ġcenter Y , Ġradius Ġ+ Ġ 2 0 F , Ġcircle Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( center X , Ġcenter Y , Ġradius Ġ+ Ġ 1 0 F , Ġcircle Paint ) ĊĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ åľĨ çİ¯ ĊĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( center X Ġ- Ġradius , Ġcenter Y Ġ- Ġradius , Ġcenter X Ġ+ Ġradius , Ġcenter Y Ġ+ Ġradius , Ġ 2 7 0 F , Ġm End Angle , Ġtrue , Ġsector Paint ) ĊĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ èĥĮæĻ¯ ĊĠĠĠ Ġ} Ċ }