/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠH am id re za ĠE te bar ian Ġ& ĠAli ĠMod ares . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġme ow . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Dash Path Effect Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . et eb arian . me ow framework . R Ċ import Ġme ow . k tx . dp Ċ import Ġme ow . k tx . getColor Compat Ċ Ċ /** Ċ Ġ* ĠMe ow ĠDash ĠView Ġclass . Ċ Ġ* Ċ Ġ* Ġ@ author Ġ ĠH am id re za ĠE te bar ian Ċ Ġ* Ġ@ version Ġ 1 . 0 . 0 Ċ Ġ* Ġ@ since ĠĠĠ 2 0 2 0 - 0 3 - 1 9 Ċ Ġ*/ Ċ Ċ @ Suppress (" unused ") Ċ class ĠMe ow Dash View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attrs : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠView ( context , Ġattrs , Ġdef Style Attrs ) Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠOrientation Ġ{ ĊĠĠĠĠĠĠĠ ĠH ORIZONTAL , ĠV ERT ICAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġorientation Ġ= ĠOrientation . HORIZONTAL ĊĠĠĠ Ġvar Ġgap Ġ= Ġ 2 f . dp () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . path Effect Ġ= ĠDash Path Effect ( float ArrayOf ( length , Ġgap ), Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Attached To Window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġlength Ġ= Ġ 2 f . dp () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . path Effect Ġ= ĠDash Path Effect ( float ArrayOf ( length , Ġgap ), Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Attached To Window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġthickness Ġ= Ġ 1 f . dp () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Attached To Window ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġdash Color Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Attached To Window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġpaint : ĠPaint Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġis Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Layer Type ( LAYER _ TYPE _ SOFTWARE , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġset Attributes From Xml ( attrs , ĠR . style able . Me ow Dash View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Ġ= ĠOrientation . values ()[ it . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Me ow Dash View _ me ow _ dash _ orientation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorientation . ordinal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgap Ġ= Ġit . get Dimension ( R . style able . Me ow Dash View _ me ow _ dash _ gap , Ġgap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlength Ġ= Ġit . get Dimension ( R . style able . Me ow Dash View _ me ow _ dash _ length , Ġlength ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthickness Ġ= Ġit . get Dimension ( R . style able . Me ow Dash View _ me ow _ dash _ thickness , Ġthickness ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdash Color Ġ= Ġit . getColor Compat ( R . style able . Me ow Dash View _ me ow _ dash _ color , Ġdash Color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠOrientation . HORIZONTAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcenter Ġ= Ġmeasured Height Ġ* Ġ. 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Line ( 0 f , Ġcenter , Ġmeasured Width . toFloat (), Ġcenter , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcenter Ġ= Ġmeasured Width Ġ* Ġ. 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Line ( center , Ġ 0 f , Ġcenter , Ġmeasured Height . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠOrientation . HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Measure Spec , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( thickness . toInt (), ĠMeasure Spec . EX ACT LY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( thickness . toInt (), ĠMeasure Spec . EX ACT LY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Measure Spec ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }