package Ġcom . ag raw als une et . loader sp ack . contracts Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ Ċ abstract Ġclass ĠCircular St icks Abstract View Ġ: ĠView , ĠLoader Contract Ġ{ ĊĊĠĠĠ Ġvar Ġno Of St icks : ĠInt Ġ= Ġ 8 0 ĊĊĠĠĠ Ġvar Ġouter Circle Radius : ĠFloat Ġ= Ġ 2 0 0 . 0 f ĊĠĠĠ Ġvar Ġinner Circle Radius : ĠFloat Ġ= Ġ 1 0 0 . 0 f ĊĊĠĠĠ Ġopen Ġvar Ġst icks Color : ĠInt Ġ= Ġresources . getColor ( android . R . color . dark er _ gray ) ĊĠĠĠ Ġvar Ġview BackgroundColor : ĠInt Ġ= Ġresources . getColor ( android . R . color . white ) ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġst icks Paint : ĠPaint ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġinner Circle Paint : ĠPaint ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġouter Circle O val : ĠRect F ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) ĊĊĠĠĠ Ġopen Ġfun Ġinit Paint s () Ġ{ ĊĠĠĠĠĠĠĠ Ġst icks Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġst icks Paint . color Ġ= Ġst icks Color ĊĠĠĠĠĠĠĠ Ġst icks Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġst icks Paint . is Anti Alias Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġouter Circle O val Ġ= ĠRect F (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= Ġ 2 Ġ* Ġouter Circle Radius ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġ 2 Ġ* Ġouter Circle Radius ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinner Circle Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġinner Circle Paint . color Ġ= Ġview BackgroundColor ĊĠĠĠĠĠĠĠ Ġinner Circle Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġinner Circle Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( 2 Ġ* Ġouter Circle Radius . toInt (), Ġ 2 Ġ* Ġouter Circle Radius . toInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( no Of St icks Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Of St icks Ġ= Ġ 8 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsweep Angle : ĠFloat Ġ= Ġ( 3 6 0 f Ġ/ Ġ( 2 Ġ* Ġno Of St icks )) ĊĠĠĠĠĠĠĠ Ġvar Ġstart Angle : ĠFloat Ġ= Ġ( 0 Ġ- Ġ( sweep Angle Ġ/ Ġ 2 )) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġno Of St icks ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( outer Circle O val , Ġstart Angle , Ġsweep Angle , Ġtrue , Ġst icks Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Angle Ġ+= Ġ( 2 Ġ* Ġsweep Angle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( outer Circle Radius , Ġouter Circle Radius , Ġinner Circle Radius , Ġinner Circle Paint ) ĊĠĠĠ Ġ} Ċ Ċ }