package Ġcom . m ash up . presentation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġkotlinx . coroutines . coroutine Scope Ċ import Ġkotlinx . coroutines . delay ĊĊ Ċ class ĠGraph Custom Ġ: ĠView Ġ{ ĊĠĠĠ Ġ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 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġpaint Line Ġ= ĠPaint () ĊĊĠĠĠ Ġvar Ġdelay Degree Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġdistance Ġ= Ġ 8 0 0 f ĊĠĠĠ Ġprivate Ġval ĠstrokeWidth Ġ= Ġ 4 0 f ĊĠĠĠ Ġprivate Ġval Ġshader : ĠShader Ġ= ĠLinear Gradient ( ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 0 f , Ġ 0 f , Ġdistance , ĊĠĠĠĠĠĠĠ ĠColor . rgb ( 9 6 , Ġ 2 9 , Ġ 2 0 6 ), ĊĠĠĠĠĠĠĠ ĠColor . rgb ( 1 9 8 , Ġ 1 6 3 , Ġ 2 5 5 ), ĊĠĠĠĠĠĠĠ ĠShader . Tile Mode . CLAMP ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġmask Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġimage Paint : ĠPaint ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor Line : ĠInt Ġ= ĠContext Compat . getColor ( context , ĠR . color . color _ line ) ĊĊĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint Line . color Ġ= Ġcolor Line ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= ĠstrokeWidth ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġpaint . stroke Cap Ġ= ĠPaint . Cap . ROUND ĊĠĠĠĠĠĠĠ Ġpaint Line . stroke Width Ġ= ĠstrokeWidth ĊĠĠĠĠĠĠĠ Ġpaint Line . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġpaint Line . stroke Cap Ġ= ĠPaint . Cap . ROUND ĊĊĠĠĠĠĠĠĠ Ġmask Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġmask Paint !!. xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) ĊĊĠĠĠĠĠĠĠ Ġimage Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġimage Paint !!. xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . DST _ OVER ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width , Ġheight Measure Spec ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġdraw Subtitle ( canvas ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġdraw Subtitle ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġ( distance Ġ* Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġ( distance Ġ* Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġ( distance Ġ/ Ġ 2 . 2 ). toInt () ĊĊĠĠĠĠĠĠĠ Ġval Ġconf Ġ= ĠBitmap . Config . ARGB _ 8 8 8 8 Ġ// ĠSee Ġother Ġconfig Ġtypes ĊĠĠĠĠĠĠĠ Ġval Ġm Image Ġ= ĠBitmap . create Bitmap ( width , Ġheight , Ġconf ) Ġ// ĠThis Ġcreates Ġa Ġmutable Ġbitmap ĊĠĠĠĠĠĠĠ Ġpaint . shader Ġ= Ġshader ĊĊĠĠĠĠĠĠĠ Ġval Ġm Mask Ġ= ĠBitmap . create Bitmap ( distance . toInt (), Ġdistance . toInt (), Ġconf ) ĊĠĠĠĠĠĠĠ Ġval Ġmask Canvas Ġ= ĠCanvas ( m Mask ) ĊĊĠĠĠĠĠĠĠ Ġval Ġo val Ġ= ĠRect F () ĊĠĠĠĠĠĠĠ Ġval Ġcenter X Ġ= Ġdistance Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġcenter Y Ġ= Ġdistance Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġo val [ center X Ġ- Ġradius , Ġcenter Y Ġ- Ġradius , Ġcenter X Ġ+ Ġradius ] Ġ= Ġcenter Y Ġ+ Ġradius ĊĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( oval , Ġ 1 3 5 f , Ġ 2 7 0 f , Ġfalse , Ġpaint Line ); ĊĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( oval , Ġ 1 3 5 f , Ġ(( delay Degree Ġ% Ġ 2 7 0 ). toFloat ()), Ġfalse , Ġpaint ); ĊĊĠĠĠĠĠĠĠ Ġ// Ġ/ Mask ĊĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġmask Canvas . draw Bitmap ( m Mask , Ġ 0 f , Ġ 0 f , Ġmask Paint ) ĊĠĠĠĠĠĠĠ Ġmask Canvas . draw Bitmap ( m Image , Ġ 0 f , Ġ 0 f , Ġimage Paint ) Ġ// ĠNotice Ġthe Ġimage Paint Ġinstead Ġof Ġnull ĊĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġcycle () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Degree ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġsuspend Ġfun Ġset C ue List ( ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcycle () ĊĠĠĠ Ġ} Ċ }