package Ġcom . tak use mb a . spot light . shape Ċ Ċ import Ġandroid . animation . Time Interpolator Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . view . animation . De cel erate Interpolator Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . math . h ypot Ċ Ċ /** Ċ Ġ* Ġ[ Shape ] Ġof ĠCircle Ġwith Ġcustom izable Ġradius . Ċ Ġ*/ Ċ class ĠCircle ( ĊĠĠĠ Ġprivate Ġval Ġradius : ĠFloat , ĊĠĠĠ Ġoverride Ġval Ġduration : ĠLong Ġ= ĠDEFAULT _ DURATION , ĊĠĠĠ Ġoverride Ġval Ġinterpol ator : ĠTime Interpolator Ġ= ĠDEFAULT _ INTER POL ATOR Ċ ) Ġ: ĠShape Ġ{ ĊĊĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas , Ġpoint : ĠPoint F , Ġvalue : ĠFloat , Ġpaint : ĠPaint ) Ġ{ ĊĠĠĠ Ġcanvas . draw Circle ( point . x , Ġpoint . y , Ġvalue Ġ* Ġradius , Ġpaint ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcontains ( point : ĠPoint F , Ġx : ĠFloat , Ġy : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġdist Ġ= Ġh ypot (( point . x Ġ- Ġx ). toDouble (), Ġ( point . y Ġ- Ġy ). toDouble ()) ĊĠĠĠ Ġreturn Ġdist Ġ< Ġradius ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġval ĠDEFAULT _ DURATION Ġ= ĠTimeUnit . MILLISECONDS . to Millis ( 5 0 0 ) ĊĊĠĠĠ Ġval ĠDEFAULT _ INTER POL ATOR Ġ= ĠDec el erate Interpolator ( 2 f ) ĊĠ Ġ} Ċ } Ċ