package Ġcom . de de . n ativ et ools . main Ċ Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . view . View Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . de de . n ativ et ools . util . dp f Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ import Ġkotlin . math . h ypot Ċ Ċ @ Parcel ize Ċ data Ġclass ĠCircular Re veal ( ĊĠĠĠ Ġval Ġcenter X : ĠInt , ĊĠĠĠ Ġval Ġcenter Y : ĠInt , ĊĠĠĠ Ġval Ġstart Radius : ĠFloat , ĊĠĠĠ Ġval Ġend Radius : ĠFloat , Ċ ) Ġ: ĠParcel able Ċ Ċ class ĠMain ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcircular Re veal Ġ= ĠMutable LiveData < Circular Re veal ? >( null ) ĊĊĠĠĠ Ġfun Ġset Circular Re veal ( decor View : ĠView , Ġpoint : ĠPoint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcircular Re veal . value Ġ= Ġcreate Circular Re veal ( decor View , Ġpoint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Circular Re veal ( decor View : ĠView , Ġpoint : ĠPoint ): ĠCircular Re veal Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCircular Re veal ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoint . x , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoint . y , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 . dp f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĭ ¾ èĤ¡ å®ļ çĲĨ ï¼Į è¿Ļ æ¬¡ çľŁ çļĦ è·Ł å®ĥ æľī åħ³ç³» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh ypot ( decor View . width . toFloat (), Ġdecor View . height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Circular Re veal And Clean (): ĠCircular Re veal ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġcircular Re veal . value ĊĠĠĠĠĠĠĠ Ġcircular Re veal . value Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} Ċ Ċ }