package Ġat . sh ock bytes . d ante . camera . overlay Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Bitmap Ċ 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 . util . Attribute Set Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġat . sh ock bytes . d ante . camera . R Ċ Ċ class ĠBar code Scan Target View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠFrame Layout ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġscan Target Size : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġscan Target Outline Width : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġcorner Radius : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġ@ Color Int ĊĠĠĠ Ġprivate Ġvar Ġbg Color : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġcenter : ĠPair < Float , ĠFloat > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPair ( width Ġ/ Ġ 2 f , Ġheight Ġ/ Ġ 2 f ) ĊĊĠĠĠ Ġprivate Ġval Ġscan Target Paint : ĠPaint ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠPaint . ANTI _ ALIAS _ FLAG ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscan Target Outline Paint : ĠPaint ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠPaint . ANTI _ ALIAS _ FLAG ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġdrawing Bitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdrawing Canvas : ĠCanvas ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Will Not Draw ( false ) ĊĊĠĠĠĠĠĠĠ Ġcontext . theme . obtain Styled Attributes ( attrs , ĠR . style able . Barcode Scan Target View , Ġdef Style , Ġ 0 ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize With Attributes ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize With Attributes ( attributes : ĠTyped Array ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġscan Target Size Ġ= Ġattributes . get Dimension ( R . style able . Barcode Scan Target View _ target _ size , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġcorner Radius Ġ= Ġattributes . get Dimension ( R . style able . Barcode Scan Target View _ corner _ radius , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġscan Target Outline Width Ġ= Ġattributes . get Dimension ( R . style able . Barcode Scan Target View _ target _ outline _ width , Ġ 0 f ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbg Color Res Ġ= Ġattributes . getResource Id ( R . style able . Barcode Scan Target View _ bg _ color , ĠR . color . scan _ target _ background ) ĊĠĠĠĠĠĠĠ Ġbg Color Ġ= ĠContext Compat . getColor ( context , Ġbg Color Res ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is View Measured ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Drawing Cache Empty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Cached Canvas And Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Background ( drawing Canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Background ( drawing Canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Scan Target Outline ( drawing Canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Scan Target ( drawing Canvas ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawing Bitmap ?. let Ġ{ Ġbitmap Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas ?. draw Bitmap ( bitmap , Ġ 0 f , Ġ 0 f , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis View Measured (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmeasured Height Ġ> Ġ 0 Ġ&& Ġmeasured Width Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Drawing Cache Empty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdrawing Bitmap Ġ== Ġnull Ġ|| Ġdrawing Canvas Ġ== Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Cached Canvas And Bitmap () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( drawing Bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawing Bitmap ?. recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdrawing Bitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠBitmap . Config . ARGB _ 8 8 8 8 ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawing Canvas Ġ= ĠCanvas ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Background ( c : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġc ?. draw Color ( Color . TRANSP ARENT , ĠPort er D uff . Mode . CLEAR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Background ( c : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġc ?. draw Color ( bgColor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Scan Target ( c : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scan Target Size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( center X , Ġcenter Y ) Ġ= Ġcenter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscan Target Half Ġ= Ġscan Target Size . div ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ?. draw Round Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ- Ġscan Target Half , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ- Ġscan Target Half , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ+ Ġscan Target Half , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ+ Ġscan Target Half , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscan Target Paint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Scan Target Outline ( c : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scan Target Size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( center X , Ġcenter Y ) Ġ= Ġcenter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscan Target Half Ġ= Ġscan Target Size . div ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ?. draw Round Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ- Ġscan Target Half Ġ- Ġscan Target Outline Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ- Ġscan Target Half Ġ- Ġscan Target Outline Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ+ Ġscan Target Half Ġ+ Ġscan Target Outline Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Y Ġ+ Ġscan Target Half Ġ+ Ġscan Target Outline Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscan Target Outline Paint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }