/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġsky do ves Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . cyber log ite c . fre ight 9 . ui . inventory . progress view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . cyber log ite c . fre ight 9 . R Ċ Ċ /** ĠHighlight View Ġis Ġa Ġview Ġwith Ġstroke Ġhighlighting Ġvia ĠonClick Listener . Ġ*/ Ċ class ĠHighlight View ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) Ġ: ĊĠ ĠFrame Layout ( context , Ġattrs ) Ġ{ ĊĊĠ Ġprivate Ġval Ġbody View Ġ= ĠLinearLayout ( context ) ĊĠ Ġprivate Ġval Ġstroke View Ġ= ĠView ( context ) ĊĊĠ Ġvar Ġhighlighting : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlighting () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġhighlight Thickness : ĠInt Ġ= Ġdp 2 Px ( 0 ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġhighlight Color : ĠInt Ġ= Ġcompat Color ( R . color . white ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġhighlight Alpha : ĠFloat Ġ= Ġ 1 . 0 f ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġradius : ĠFloat Ġ= Ġdp 2 Px ( 5 ). toFloat () ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġpadding Ġ= Ġdp 2 Px ( 0 ). toFloat () ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġcolor : ĠInt Ġ= Ġcompat Color ( R . color . color Primary ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġcolor Gradient Start : ĠInt Ġ= Ġ 6 5 5 5 5 ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġcolor Gradient End : ĠInt Ġ= Ġ 6 5 5 5 5 ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġdrawable : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġorientation Ġ= ĠProgress View Orientation . HORIZONTAL ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġon Progress ClickListener : ĠOn Progress ClickListener ? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠ Ġupdate Highlight View () ĊĠ Ġ} ĊĊĠ Ġfun Ġupdate Highlight View () Ġ{ ĊĠĠĠ Ġupdate Body View () ĊĠĠĠ Ġupdate Stroke View () ĊĠĠĠ Ġupdate Highlighting () ĊĠĠĠ Ġupdate OnClickListener () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Body View () Ġ{ ĊĠĠĠ Ġif Ġ( color Gradient Start Ġ!= Ġ 6 5 5 5 5 Ġ&& Ġcolor Gradient End Ġ!= Ġ 6 5 5 5 5 ) Ġ{ ĊĠĠĠĠĠ Ġvar Ġgradient Orientation Ġ= ĠGradient Drawable . Orientation . LEFT _ RIGHT ĊĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠProgress View Orientation . VERTICAL ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgradient Orientation Ġ= ĠGradient Drawable . Orientation . TOP _ BOTTOM ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġgradient Ġ= ĠGradient Drawable ( gradient Orientation , Ġint ArrayOf ( color Gradient Start , Ġcolor Gradient End )) ĊĠĠĠĠĠ Ġgradient . corner Radius Ġ= Ġradius ĊĠĠĠĠĠ Ġthis . body View . background Ġ= Ġgradient ĊĠĠĠ Ġ} Ġelse Ġif Ġ( this . drawable Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠGradient Drawable () ĊĠĠĠĠĠ Ġdrawable . corner Radius Ġ= Ġradius ĊĠĠĠĠĠ Ġdrawable . setColor ( color ) ĊĠĠĠĠĠ Ġthis . body View . background Ġ= Ġdrawable ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġthis . body View . background Ġ= Ġthis . drawable ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġparams Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġparams . set Margins ( padding . toInt (), Ġpadding . toInt (), Ġpadding . toInt (), Ġpadding . toInt ()) ĊĠĠĠ Ġthis . body View . layout Params Ġ= Ġparams ĊĠĠĠ Ġremove View ( body View ) ĊĠĠĠ Ġadd View ( body View ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Stroke View () Ġ{ ĊĠĠĠ Ġval Ġdrawable Ġ= ĠGradient Drawable () ĊĠĠĠ Ġdrawable . setColor ( Color . TRANSP ARENT ) ĊĠĠĠ Ġdrawable . corner Radius Ġ= Ġradius ĊĠĠĠ Ġdrawable . set Stroke ( highlight Thickness , Ġhighlight Color ) ĊĠĠĠ Ġthis . stroke View . background Ġ= Ġdrawable ĊĠĠĠ Ġthis . stroke View . layout Params Ġ= ĊĠĠĠĠĠ ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġremove View ( stroke View ) ĊĠĠĠ Ġadd View ( stroke View ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Highlighting () Ġ{ ĊĠĠĠ Ġif Ġ( this . highlight ing ) Ġ{ ĊĠĠĠĠĠ Ġthis . stroke View . alpha Ġ= Ġthis . highlight Alpha ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġthis . stroke View . alpha Ġ= Ġ 0 f ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate OnClickListener () Ġ{ ĊĠĠĠ Ġthis . stroke View . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġthis . highlight ing Ġ= Ġ! highlight ing ĊĠĠĠĠĠ Ġthis . on Progress ClickListener ?. onClick Progress ( this . highlight ing ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ