package Ġcom . av ito . android . k rop Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . Port er D uff X fer mode Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroidx . annotation . Int Def Ċ import Ġandroid . view . View Ċ Ċ class ĠOverlay View ( context : ĠContext ) Ġ: ĠView ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġoverlay Color : ĠInt Ġ= ĠColor . TRANSP ARENT ĊĠĠĠ Ġprivate Ġvar Ġoverlay Shape : ĠInt Ġ= ĠSHA PE _ O VAL ĊĠĠĠ Ġprivate Ġval Ġclear Paint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĊĠĠĠ Ġvar Ġviewport Ġ= ĠRect F () ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġ@ Overlay Shape Ġshape : ĠInt ) Ġ: Ġthis ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . overlay Shape Ġ= Ġshape ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Layer Type ( LAYER _ TYPE _ SOFTWARE , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġclear Paint . color Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġclear Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġclear Paint . xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠMeasure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠMeasure Spec . getSize ( height Measure Spec ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( viewport . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( viewport ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= Ġwidth . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġheight . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Overlay Color ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay Color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Overlay Shape (@ Overlay Shape Ġshape : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay Shape Ġ= Ġshape ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Color ( overlay Color ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( overlay Shape ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSHA PE _ O VAL Ġ-> Ġcanvas . draw O val ( viewport , Ġclear Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcanvas . draw Rect ( viewport , Ġclear Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Int Def ( SHAPE _ O VAL , ĠSHA PE _ RECT ) Ċ @ Retention ( Annotation Retention . SOURCE ) Ċ annotation Ġclass ĠOverlay Shape Ċ Ċ const Ġval ĠSHA PE _ O VAL Ġ= Ġ 0 Ċ const Ġval ĠSHA PE _ RECT Ġ= Ġ 1