package Ġkr . co . mr k 1 3 . android . android floating music . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Path Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġkr . co . mr k 1 3 . android . android floating music . R Ċ Ċ /** Ċ Ġ* Ġ@ author Ġro ss . Ċ Ġ*/ Ċ class ĠRo unded Constraint Layout ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĊĠĠĠ ĠConstraint Layout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrect F : ĠRect F ĊĠĠĠ Ġprivate Ġval Ġpath Ġ= ĠPath () ĊĠĠĠ Ġprivate Ġvar Ġcorner Radius Ġ= Ġ 0 f ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= ĠgetContext (). obtain Styled Attributes ( attrs , ĠR . style able . Rounded Constraint Layout ) ĊĠĠĠĠĠĠĠ Ġcorner Radius Ġ= Ġta . get Float ( R . style able . Rounded Constraint Layout _ app Corner Radius , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( w , Ġh , Ġold w , Ġold h ) ĊĠĠĠĠĠĠĠ Ġrect F Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġw . toFloat (), Ġh . toFloat ()) ĊĠĠĠĠĠĠĠ Ġreset Path () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsave Ġ= Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . clip Path ( path ) ĊĠĠĠĠĠĠĠ Ġsuper . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġcanvas . restore To Count ( save ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsave Ġ= Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . clip Path ( path ) ĊĠĠĠĠĠĠĠ Ġsuper . dispatch Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġcanvas . restore To Count ( save ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġpath . reset () ĊĠĠĠĠĠĠĠ Ġpath . add Round Rect ( rect F , Ġcorner Radius , Ġcorner Radius , ĠPath . Direction . CW ) ĊĠĠĠĠĠĠĠ Ġpath . close () ĊĠĠĠ Ġ} Ċ }