/* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Member Visibility Can Be Private ", Ġ" unused ") Ċ Ċ package Ġcom . sky do ves . progress view Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . TextView Ċ Ċ @ Dsl Marker Ċ annotation Ġclass ĠProgress View DSL Ċ Ċ /** Ġcreates Ġan Ġinstance Ġof Ġ[ Progress View ] Ġby Ġ[ Progress View . Builder ] Ġusing Ġkotlin Ġd sl . Ġ*/ Ċ fun Ġprogress View ( context : ĠContext , Ġblock : ĠProgress View . Builder . () Ġ-> ĠUnit ): ĠProgress View Ġ= ĊĠ ĠProgress View . Builder ( context ). apply ( block ). build () Ċ Ċ /** ĠProgress View Ġis Ġa Ġprogress Ġbar Ġwith Ġa Ġflexible Ġtext Ġand Ġanimations . Ġ*/ Ċ class ĠProgress View Ġ: ĠFrame Layout Ġ{ ĊĊĠ Ġval Ġlabel View Ġ= ĠTextView ( context ) ĊĠ Ġval Ġhighlight View Ġ= ĠHighlight View ( context ) ĊĊĠ Ġvar Ġduration Ġ= Ġ 1 0 0 0 L ĊĠ Ġvar Ġauto Animate Ġ= Ġtrue ĊĠ Ġvar Ġmax Ġ= Ġ 1 0 0 f ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġprogress Ġ= Ġ 0 f ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġif Ġ( value Ġ>= Ġmax ) Ġmax ĊĠĠĠĠĠ Ġelse Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠĠĠ Ġon Progress ChangeListener ?. onChange ( field ) ĊĠĠĠ Ġ} ĊĠ Ġvar Ġorientation Ġ= ĠProgress View Orientation . HORIZONTAL ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġcolor Background Ġ= Ġcompat Color ( R . color . white ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġradius Ġ= Ġdp 2 Px ( 5 ). toFloat () ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Text : ĠString ? Ġ= Ġ"" ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Size Ġ= Ġ 1 2 f ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Color Inner Ġ= Ġcompat Color ( R . color . white ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Color Outer Ġ= Ġcompat Color ( R . color . black ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Type face Ġ= ĠType face . NORMAL ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġlabel Space Ġ= Ġdp 2 Px ( 8 ). toFloat () ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġupdate Progress View () ĊĠĠĠ Ġ} ĊĠ Ġvar Ġon Progress ChangeListener : ĠOn Progress ChangeListener ? Ġ= Ġnull ĊĠ Ġvar Ġon Progress ClickListener : ĠOn Progress ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġthis . highlight View . on Progress ClickListener Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĊĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattribute Set ) Ġ{ ĊĠĠĠ Ġget Attrs ( attribute Set ) ĊĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet , Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattribute Set , Ġdef Style ) Ġ{ ĊĠĠĠ Ġget Attrs ( attribute Set , Ġdef Style ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Attrs ( attribute Set : ĠAttributeSet ) Ġ{ ĊĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . Progress View ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġset Type Array ( typed Array ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Attrs ( attribute Set : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . Progress View , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġset Type Array ( typed Array ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġset Type Array ( a : ĠTyped Array ) Ġ{ ĊĠĠĠ Ġthis . label Text Ġ= Ġa . getString ( R . style able . Progress View _ progress View _ label Text ) ĊĠĠĠ Ġthis . label Size Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ label Size , Ġlabel Size ) ĊĠĠĠ Ġthis . label Space Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ label Space , Ġlabel Space ) ĊĠĠĠ Ġthis . label Color Inner Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ label Color Inner , Ġlabel Color Inner ) ĊĠĠĠ Ġthis . label Color Outer Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ label Color Outer , Ġlabel Color Outer ) ĊĠĠĠ Ġwhen Ġ( a . getInt ( R . style able . Progress View _ progress View _ label Type face , ĠType face . NORMAL )) Ġ{ ĊĠĠĠĠĠĠ 0 Ġ-> Ġthis . label Type face Ġ= ĠType face . NORMAL ĊĠĠĠĠĠĠ 1 Ġ-> Ġthis . label Type face Ġ= ĠType face . BOLD ĊĠĠĠĠĠĠ 2 Ġ-> Ġthis . label Type face Ġ= ĠType face . ITAL IC ĊĠĠĠ Ġ} ĊĠĠĠ Ġwhen Ġ( a . getInt ( R . style able . Progress View _ progress View _ orientation , ĠProgress View Orientation . HORIZONTAL . value )) Ġ{ ĊĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . orientation Ġ= ĠProgress View Orientation . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġthis . highlight View . orientation Ġ= ĠProgress View Orientation . HORIZONTAL ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . orientation Ġ= ĠProgress View Orientation . VERTICAL ĊĠĠĠĠĠĠĠ Ġthis . highlight View . orientation Ġ= ĠProgress View Orientation . VERTICAL ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . max Ġ= Ġa . get Float ( R . style able . Progress View _ progress View _ max , Ġmax ) ĊĠĠĠ Ġthis . progress Ġ= Ġa . get Float ( R . style able . Progress View _ progress View _ progress , Ġprogress ) ĊĠĠĠ Ġthis . radius Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ radius , Ġradius ) ĊĠĠĠ Ġthis . duration Ġ= Ġa . getInteger ( R . style able . Progress View _ progress View _ duration , Ġduration . toInt ()). to Long () ĊĠĠĠ Ġthis . color Background Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ color Background , Ġcolor Background ) ĊĠĠĠ Ġthis . auto Animate Ġ= Ġa . getBoolean ( R . style able . Progress View _ progress View _ auto Animate , Ġauto Animate ) ĊĠĠĠ Ġwith ( this . highlight View ) Ġ{ ĊĠĠĠĠĠ Ġalpha Ġ= Ġa . get Float ( R . style able . Progress View _ progress View _ highlight Alpha , Ġhighlight Alpha ) ĊĠĠĠĠĠ Ġcolor Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ color Progress , Ġcolor ) ĊĠĠĠĠĠ Ġcolor Gradient Start Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ color Gradient Start , Ġ 6 5 5 5 5 ) ĊĠĠĠĠĠ Ġcolor Gradient End Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ color Gradient End , Ġ 6 5 5 5 5 ) ĊĠĠĠĠĠ Ġradius Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ radius , Ġradius ) ĊĠĠĠĠĠ Ġpadding Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ padding , Ġpadding ) ĊĠĠĠĠĠ Ġhighlight Color Ġ= Ġa . getColor ( R . style able . Progress View _ progress View _ highlight Color , Ġhighlight Color ) ĊĠĠĠĠĠ Ġhighlight Thickness Ġ= Ġa . get Dimension ( R . style able . Progress View _ progress View _ highlight Width , Ġhighlight Thickness . toFloat ()). toInt () ĊĠĠĠĠĠ Ġif Ġ(! a . getBoolean ( R . style able . Progress View _ progress View _ highlight ing , Ġ! highlight ing )) Ġ{ ĊĠĠĠĠĠĠĠ Ġhighlight Thickness Ġ= Ġ 0 ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠ Ġupdate Progress View () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Progress View () Ġ{ ĊĠĠĠ Ġpost Ġ{ ĊĠĠĠĠĠ Ġupdate Highlight View () ĊĠĠĠĠĠ Ġupdate Label () ĊĠĠĠ Ġ} ĊĠĠĠ Ġupdate Background () ĊĠĠĠ Ġupdate Orientation () ĊĠĠĠ Ġauto Animate () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Background () Ġ{ ĊĠĠĠ Ġval Ġdrawable Ġ= ĠGradient Drawable () ĊĠĠĠ Ġdrawable . corner Radius Ġ= Ġradius ĊĠĠĠ Ġdrawable . setColor ( color Background ) ĊĠĠĠ Ġthis . background Ġ= Ġdrawable ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Orientation () Ġ{ ĊĠĠĠ Ġif Ġ( orientation Ġ== ĠProgress View Orientation . VERTICAL ) Ġ{ ĊĠĠĠĠĠ Ġrotation Ġ= Ġ 1 8 0 f ĊĠĠĠĠĠ Ġlabel View . rotation Ġ= Ġ 1 8 0 f ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Highlight View () Ġ{ ĊĠĠĠ Ġval Ġparams Ġ= ĠLayout Params ( LayoutParams . MATCH _ PARENT , ĠLayout Params . MATCH _ PARENT ) ĊĠĠĠ Ġif Ġ( max Ġ<= Ġprogress ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( is Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġget View Size ( this ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġparams . width Ġ= Ġget View Size ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġif Ġ( is Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġget Progress Size (). toInt () ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġparams . width Ġ= Ġget Progress Size (). toInt () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . highlight View . layout Params Ġ= Ġparams ĊĠĠĠ Ġthis . highlight View . update Highlight View () ĊĠĠĠ Ġremove View ( highlight View ) ĊĠĠĠ Ġadd View ( highlight View ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġupdate Label () Ġ{ ĊĠĠĠ Ġvar Ġparams Ġ= ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġif Ġ(! is Vertical ()) Ġ{ ĊĠĠĠĠĠ Ġthis . label View . gravity Ġ= ĠGr avity . CENTER _ VERTICAL ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġparams Ġ= ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠ Ġthis . label View . gravity Ġ= ĠGr avity . BOTTOM Ġor ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . label View . layout Params Ġ= Ġparams ĊĠĠĠ Ġthis . label View . text Ġ= Ġlabel Text ĊĠĠĠ Ġthis . label View . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġlabel Size ) ĊĠĠĠ Ġthis . label View . setType face ( label View . type face , Ġlabel Type face ) ĊĠĠĠ Ġremove View ( label View ) ĊĠĠĠ Ġadd View ( label View ) ĊĊĠĠĠ Ġpost Ġ{ ĊĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . label View . width Ġ+ Ġlabel Space Ġ< Ġget Progress Size () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġset Label View Position ( get Progress Size () Ġ- Ġthis . label View . width Ġ- Ġthis . label Space ) ĊĠĠĠĠĠĠĠĠĠ Ġthis . label View . setTextColor ( label Color Inner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġset Label View Position ( get Progress Size () Ġ+ Ġthis . label Space ) ĊĠĠĠĠĠĠĠĠĠ Ġthis . label View . setTextColor ( label Color Outer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġset Label View Position ( position : ĠFloat ) Ġ{ ĊĠĠĠ Ġif Ġ( is Vertical ()) Ġ{ ĊĠĠĠĠĠ Ġlabel View . y Ġ= Ġposition ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġlabel View . x Ġ= Ġposition ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Progress Size (): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġ( getView Size ( this ) Ġ/ Ġmax ) Ġ* Ġprogress ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Label Position (): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġthis . label View . width Ġ+ Ġlabel Space Ġ< Ġget Progress Size () Ġ-> Ġget Progress Size () Ġ- Ġthis . label View . width Ġ- Ġthis . label Space ĊĠĠĠĠĠ Ġelse Ġ-> Ġget Progress Size () Ġ+ Ġthis . label Space ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġauto Animate () Ġ{ ĊĠĠĠ Ġif Ġ( this . auto Animate ) Ġ{ ĊĠĠĠĠĠ Ġprogress Animate () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget View Size ( view : ĠView ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( is Vertical ()) Ġview . height ĊĠĠĠ Ġelse Ġview . width ĊĠ Ġ} ĊĊĠ Ġ/** Ġanim ates Ġ[ Progress View ]' s Ġprogress Ġbar . Ġ*/ ĊĠ Ġfun Ġprogress Animate () Ġ{ ĊĠĠĠ Ġthis . label View . x Ġ= Ġ 0 f ĊĠĠĠ Ġthis . highlight View . update LayoutParams Ġ{ ĊĠĠĠĠĠ Ġif Ġ( is Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 0 ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 0 ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġanim ator Ġ= ĠValue Animator . of Float ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġanim ator . duration Ġ= Ġduration ĊĠĠĠ Ġanim ator . add Update Listener Ġ{ ĊĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . animated Value Ġas ĠFloat ĊĠĠĠĠĠ Ġset Label View Position ( getLabel Position () Ġ* Ġvalue ) ĊĠĠĠĠĠ Ġthis . highlight View . update LayoutParams Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ( get Progress Size () Ġ* Ġvalue ). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ( get Progress Size () Ġ* Ġvalue ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġanim ator . start () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġis Vertical (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġorientation Ġ== ĠProgress View Orientation . VERTICAL ĊĠ Ġ} ĊĊĠ Ġ/** Ġsets Ġa Ġprogress Ġchange Ġlistener . Ġ*/ ĊĠ Ġfun Ġset On Progress ChangeListener ( block : Ġ( Float ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . on Progress ChangeListener Ġ= Ġobject Ġ: ĠOn Progress ChangeListener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonChange ( progress : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( progress ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** Ġsets Ġa Ġprogress Ġclick Ġlistener . Ġ*/ ĊĠ Ġfun Ġset On Progress ClickListener ( block : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . on Progress ClickListener Ġ= Ġobject Ġ: ĠOn Progress ClickListener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonClick Progress ( highlight ing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( highlight ing ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** Ġapplies Ġ[ Text Form ] Ġattributes Ġto Ġa ĠTextView . Ġ*/ ĊĠ Ġfun Ġapply Text Form ( text Form : ĠText Form ) Ġ{ ĊĠĠĠ Ġthis . label View . apply Text Form ( text Form ) ĊĠ Ġ} ĊĊĠ Ġ/** ĠBuilder Ġclass Ġfor Ġcreating Ġ[ Progress View ]. Ġ*/ ĊĠ Ġ@ Progress View DSL ĊĠ Ġclass ĠBuilder ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġprogress View Ġ= ĠProgress View ( context ) ĊĊĠĠĠ Ġfun Ġset Size ( width : ĠInt , Ġheight : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . layout Params Ġ= ĠLayout Params ( progress View . dp 2 Px ( width ), Ġprogress View . dp 2 Px ( height )) Ġ} ĊĠĠĠ Ġfun Ġset Height ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . layout Params . height Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Duration ( value : ĠLong ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . duration Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Auto Animate ( value : ĠBoolean ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . auto Animate Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Max ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . max Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . progress Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Orientation ( value : ĠProgress View Orientation ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . orientation Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Color Background ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . color Background Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Radius ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . radius Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Label Text ( value : ĠString ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Text Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Label Size ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Size Ġ= Ġthis . progress View . sp 2 Px ( value ) Ġ} ĊĠĠĠ Ġfun Ġset Label Space ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Space Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Label Color Inner ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Color Inner Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Label Color Outer ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Color Outer Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Label Type face ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label Type face Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Alpha ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . alpha Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Color ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . color Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Color Gradient Start ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . color Gradient Start Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Color Gradient End ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . color Gradient End Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Radius ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . radius Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Progress bar Padding ( value : ĠFloat ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . padding Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Highlight Color ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . highlight Color Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Highlighting ( value : ĠBoolean ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . highlight ing Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Highlight Thickness ( value : ĠInt ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . highlight View . highlight Thickness Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset On Progress ChangeListener ( value : ĠOn Progress ChangeListener ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . on Progress ChangeListener Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset On Progress ClickListener ( value : ĠOn Progress ClickListener ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . on Progress ClickListener Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġset Text Form ( value : ĠText Form ): ĠBuilder Ġ= Ġapply Ġ{ Ġthis . progress View . label View . apply Text Form ( value ) Ġ} ĊĠĠĠ Ġfun Ġset On Progress ChangeListener ( block : Ġ( Float ) Ġ-> ĠUnit ): ĠBuilder Ġ= Ġapply Ġ{ ĊĠĠĠĠĠ Ġthis . progress View . on Progress ChangeListener Ġ= Ġobject Ġ: ĠOn Progress ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChange ( progress : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġblock ( progress ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Progress ClickListener ( block : Ġ( Boolean ) Ġ-> ĠUnit ): ĠBuilder Ġ= Ġapply Ġ{ ĊĠĠĠĠĠ Ġthis . progress View . on Progress ClickListener Ġ= Ġobject Ġ: ĠOn Progress ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick Progress ( highlight ing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġblock ( highlight ing ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild () Ġ= Ġprogress View ĊĠ Ġ} Ċ } Ċ