package Ġcom . tak use mb a . spot light Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . animation . Time Interpolator Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . animation . Value Animator . Animator Update Listener Ċ import Ġandroid . animation . Value Animator . INF IN ITE Ċ import Ġandroid . animation . Value Animator . of Float Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . Port er D uff X fer mode Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . annotation . Color Int Ċ import Ġcom . tak use mb a . spot light . shape . Circle Ċ import Ġcom . tak use mb a . spot light . shape . Rounded Rectangle Ċ import Ġcom . tak use mb a . spot light . shape . Shape Ċ Ċ /** Ċ Ġ* Ġ[ Spot light View ] Ġstarts / fin ishes Ġ[ Spot light ], Ġand Ġstarts / fin ishes Ġa Ġcurrent Ġ[ Target ]. Ċ Ġ*/ Ċ internal Ġclass ĠSpot light View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ@ Color Int ĠbackgroundColor : ĠInt Ċ ) Ġ: ĠFrame Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠ Ġprivate Ġval Ġbackground Paint Ġby Ġlazy Ġ{ ĊĠĠĠ ĠPaint (). apply Ġ{ Ġcolor Ġ= ĠbackgroundColor Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġshape Paint Ġby Ġlazy Ġ{ ĊĠĠĠ ĠPaint (). apply Ġ{ Ġxfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġeffect Paint Ġby Ġlazy Ġ{ ĠPaint () Ġ} ĊĊĠ Ġprivate Ġval Ġinvalid ator Ġ= ĠAn imator Update Listener Ġ{ Ġinvalidate () Ġ} ĊĊĠ Ġprivate Ġvar Ġshape Animator : ĠValue Animator ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġeffect Animator : ĠValue Animator ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġtarget : ĠTarget ? Ġ= Ġnull ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġset Will Not Draw ( false ) ĊĠĠĠ Ġset Layer Type ( View . LAYER _ TYPE _ HARD WARE , Ġnull ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Touch Event ( event : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠ Ġevent ?. action ?. let Ġ{ ĊĠĠĠĠĠ Ġval Ġx Ġ= Ġevent . x . toInt () ĊĠĠĠĠĠ Ġval Ġy Ġ= Ġevent . y . toInt () ĊĊĠĠĠĠĠ Ġif Ġ( it Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( target ?. shape ?. type Ġ== ĠShape . Shape Type . CIR CLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġtarget ?. shape Ġas ĠCircle ĊĠĠĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġshape . radius ĊĠĠĠĠĠĠĠĠĠ Ġval Ġx Anchor Ġ= Ġtarget ?. anchor ?. x ĊĠĠĠĠĠĠĠĠĠ Ġval Ġy Anchor Ġ= Ġtarget ?. anchor ?. y ĊĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( x Anchor Ġ!= Ġnull Ġ&& Ġy Anchor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft X Ġ= Ġ( x Anchor Ġ- Ġradius Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright X Ġ= Ġx Anchor Ġ+ Ġradius Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Y Ġ= Ġy Anchor Ġ- Ġradius Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Y Ġ= Ġy Anchor Ġ+ Ġradius Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x . toFloat () Ġin Ġleft X .. right X Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy . toFloat () Ġin Ġtop Y .. bottom Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target ?. shape ?. type Ġ== ĠShape . Shape Type . RO UN DED _ RECT ANGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġshape Animator ?. animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠ Ġtarget ?. anchor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġtarget ?. shape Ġas ĠRo unded Rectangle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf Width Ġ= Ġshape . width Ġ/ Ġ 2 Ġ* Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf Height Ġ= Ġshape . height Ġ/ Ġ 2 Ġ* Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġit . x Ġ- Ġhalf Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġit . y Ġ- Ġhalf Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġit . x Ġ+ Ġhalf Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= Ġit . y Ġ+ Ġhalf Height ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x . toFloat () Ġin Ġleft .. right Ġ&& Ġy . toFloat () Ġin Ġtop .. bottom ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠ Ġcanvas . draw Rect ( 0 f , Ġ 0 f , Ġwidth . toFloat (), Ġheight . toFloat (), Ġbackground Paint ) ĊĠĠĠ Ġval Ġcurrent Target Ġ= Ġtarget ĊĠĠĠ Ġval Ġcurrent Shape Animator Ġ= Ġshape Animator ĊĠĠĠ Ġval Ġcurrent Effect Animator Ġ= Ġeffect Animator ĊĠĠĠ Ġif Ġ( currentTarget Ġ!= Ġnull Ġ&& Ġcurrent Effect Animator Ġ!= Ġnull Ġ&& Ġcurrent Shape Animator Ġ!= Ġnull Ġ&& Ġ! current Shape Animator . isRunning ) Ġ{ ĊĠĠĠĠĠ Ġcurrent Target . effect . draw ( ĊĠĠĠĠĠĠĠĠĠ Ġcanvas Ġ= Ġcanvas , ĊĠĠĠĠĠĠĠĠĠ Ġpoint Ġ= Ġcurrent Target . anchor , ĊĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġcurrent Effect Animator . animated Value Ġas ĠFloat , ĊĠĠĠĠĠĠĠĠĠ Ġpaint Ġ= Ġeffect Paint ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( currentTarget Ġ!= Ġnull Ġ&& Ġcurrent Shape Animator Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġcurrent Target . shape . draw ( ĊĠĠĠĠĠĠĠĠĠ Ġcanvas Ġ= Ġcanvas , ĊĠĠĠĠĠĠĠĠĠ Ġpoint Ġ= Ġcurrent Target . anchor , ĊĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġcurrent Shape Animator . animated Value Ġas ĠFloat , ĊĠĠĠĠĠĠĠĠĠ Ġpaint Ġ= Ġshape Paint ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠStarts Ġ[ Spot light ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstart Spot light ( ĊĠĠĠĠĠ Ġduration : ĠLong , ĊĠĠĠĠĠ Ġinterpol ator : ĠTime Interpolator , ĊĠĠĠĠĠ Ġlistener : ĠAn imator . Animator Listener ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġobject Animator Ġ= ĠObject Animator . of Float ( this , Ġ" alpha ", Ġ 0 f , Ġ 1 f ). apply Ġ{ ĊĠĠĠĠĠ Ġset Duration ( duration ) ĊĠĠĠĠĠ Ġset Interpolator ( interpol ator ) ĊĠĠĠĠĠ Ġadd Listener ( listener ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġobject Animator . start () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠFin ishes Ġ[ Spot light ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġfinish Spot light ( ĊĠĠĠĠĠ Ġduration : ĠLong , ĊĠĠĠĠĠ Ġinterpol ator : ĠTime Interpolator , ĊĠĠĠĠĠ Ġlistener : ĠAn imator . Animator Listener ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġobject Animator Ġ= ĠObject Animator . of Float ( this , Ġ" alpha ", Ġ 1 f , Ġ 0 f ). apply Ġ{ ĊĠĠĠĠĠ Ġset Duration ( duration ) ĊĠĠĠĠĠ Ġset Interpolator ( interpol ator ) ĊĠĠĠĠĠ Ġadd Listener ( listener ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġobject Animator . start () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠStarts Ġthe Ġprovided Ġ[ Target ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstart Target ( target : ĠTarget ) Ġ{ ĊĠĠĠ Ġremove All Views () ĊĊĠĠĠ Ġval Ġoverlay View Ġ= Ġtarget . overlay ĊĠĠĠ Ġoverlay View ?. measure ( 0 , 0 ) ĊĊĠĠĠ Ġval Ġshape Width Ġ= Ġtarget . shape . width ĊĠĠĠ Ġval Ġshape Height Ġ= Ġtarget . shape . height ĊĠĠĠ Ġval Ġoverlay Width Ġ= Ġ( overlay View Ġas ĠViewGroup ). meas ured Width ĊĠĠĠ Ġval Ġoverlay Height Ġ= Ġoverlay View . meas ured Height ĊĊĠĠĠ Ġval Ġshape X Start Ġ= Ġtarget . anchor . x Ġ- Ġshape Width / 2 ĊĠĠĠ Ġval Ġshape Y Start Ġ= Ġtarget . anchor . y Ġ- Ġshape Height / 2 ĊĠĠĠ Ġval Ġshape X End Ġ= Ġshape X Start Ġ+ Ġshape Width ĊĠĠĠ Ġval Ġshape Y End Ġ= Ġshape Y Start Ġ+ Ġshape Height ĊĊĠĠĠ Ġvar Ġoverlay X Ġ= Ġshape X Start ĊĠĠĠ Ġvar Ġoverlay Y Ġ= Ġshape Y Start ĊĊĠĠĠ Ġwhen Ġ( target . overlay Alignment ) Ġ{ ĊĠĠĠĠĠ ĠOverlay Alignment . DEFAULT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġadd View ( target . overlay , ĠMATCH _ PARENT , ĠMATCH _ PARENT ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . TOP _ LEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġshape X Start ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y Start Ġ- Ġoverlay Height Ġ- Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . TOP _ CENTER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġtarget . anchor . x Ġ- Ġ( overlay Width / 2 ) ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y Start Ġ- Ġoverlay Height Ġ- Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . TOP _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġshape X End Ġ- Ġoverlay Width ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y Start Ġ- Ġoverlay Height Ġ- Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . BOTTOM _ LEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġshape X Start ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y End Ġ+ Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . BOTTOM _ CENTER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġtarget . anchor . x Ġ- Ġoverlay Width / 2 ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y End Ġ+ Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠOverlay Alignment . BOTTOM _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay X Ġ= Ġshape X End Ġ- Ġoverlay Width ĊĠĠĠĠĠĠĠ Ġoverlay Y Ġ= Ġshape Y End Ġ+ Ġtarget . vertical Margin ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( target . overlay Alignment Ġ!= ĠOverlay Alignment . DEFAULT ) Ġ{ ĊĠĠĠĠĠ Ġoverlay View . x Ġ= Ġoverlay X ĊĠĠĠĠĠ Ġoverlay View . y Ġ= Ġoverlay Y ĊĠĠĠĠĠ Ġadd View ( overlay View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthis . target Ġ= Ġtarget . apply Ġ{ ĊĠĠĠĠĠ Ġ// Ġadjust Ġanchor Ġin Ġcase Ġwhere Ġcustom Ġcontainer Ġis Ġset . ĊĠĠĠĠĠ Ġval Ġlocation Ġ= ĠInt Array ( 2 ) ĊĠĠĠĠĠ Ġget Location In Window ( location ) ĊĠĠĠĠĠ Ġval Ġoffset Ġ= ĠPoint F ( location [ 0 ]. toFloat (), Ġlocation [ 1 ]. toFloat ()) ĊĠĠĠĠĠ Ġanchor . offset (- offset . x , Ġ- offset . y ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . shape Animator ?. removeAll Listeners () ĊĠĠĠ Ġthis . shape Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġthis . shape Animator ?. cancel () ĊĠĠĠ Ġthis . shape Animator Ġ= Ġof Float ( 0 f , Ġ 1 f ). apply Ġ{ ĊĠĠĠĠĠ Ġduration Ġ= Ġtarget . shape . duration ĊĠĠĠĠĠ Ġinterpol ator Ġ= Ġtarget . shape . interpol ator ĊĠĠĠĠĠ Ġadd Update Listener ( invalid ator ) ĊĠĠĠĠĠ Ġadd Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . effect Animator ?. removeAll Listeners () ĊĠĠĠ Ġthis . effect Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġthis . effect Animator ?. cancel () ĊĠĠĠ Ġthis . effect Animator Ġ= Ġof Float ( 0 f , Ġ 1 f ). apply Ġ{ ĊĠĠĠĠĠ Ġstart Delay Ġ= Ġtarget . shape . duration ĊĠĠĠĠĠ Ġduration Ġ= Ġtarget . effect . duration ĊĠĠĠĠĠ Ġinterpol ator Ġ= Ġtarget . effect . interpol ator ĊĠĠĠĠĠ Ġrepeat Mode Ġ= Ġtarget . effect . repeat Mode ĊĠĠĠĠĠ Ġrepeat Count Ġ= ĠIN FIN ITE ĊĠĠĠĠĠ Ġadd Update Listener ( invalid ator ) ĊĠĠĠĠĠ Ġadd Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġshape Animator ?. start () ĊĠĠĠ Ġeffect Animator ?. start () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠFin ishes Ġthe Ġcurrent Ġ[ Target ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġfinish Target ( listener : ĠAn imator . Animator Listener ) Ġ{ ĊĠĠĠ Ġval Ġcurrent Target Ġ= Ġtarget Ġ?: Ġreturn ĊĠĠĠ Ġval Ġcurrent Animated Value Ġ= Ġshape Animator ?. animated Value Ġ?: Ġreturn ĊĠĠĠ Ġshape Animator ?. removeAll Listeners () ĊĠĠĠ Ġshape Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġshape Animator ?. cancel () ĊĠĠĠ Ġshape Animator Ġ= Ġof Float ( current Animated Value Ġas ĠFloat , Ġ 0 f ). apply Ġ{ ĊĠĠĠĠĠ Ġduration Ġ= Ġcurrent Target . shape . duration ĊĠĠĠĠĠ Ġinterpol ator Ġ= Ġcurrent Target . shape . interpol ator ĊĠĠĠĠĠ Ġadd Update Listener ( invalid ator ) ĊĠĠĠĠĠ Ġadd Listener ( listener ) ĊĠĠĠĠĠ Ġadd Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠ Ġremove All Update Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġeffect Animator ?. removeAll Listeners () ĊĠĠĠ Ġeffect Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġeffect Animator ?. cancel () ĊĠĠĠ Ġeffect Animator Ġ= Ġnull ĊĠĠĠ Ġshape Animator ?. start () ĊĠ Ġ} ĊĊĠ Ġfun Ġcleanup () Ġ{ ĊĠĠĠ Ġeffect Animator ?. removeAll Listeners () ĊĠĠĠ Ġeffect Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġeffect Animator ?. cancel () ĊĠĠĠ Ġeffect Animator Ġ= Ġnull ĊĠĠĠ Ġshape Animator ?. removeAll Listeners () ĊĠĠĠ Ġshape Animator ?. removeAll Update Listeners () ĊĠĠĠ Ġshape Animator ?. cancel () ĊĠĠĠ Ġshape Animator Ġ= Ġnull ĊĠĠĠ Ġremove All Views () ĊĠ Ġ} Ċ } Ċ