package Ġcom . element ary . tasks . core . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Seek Bar Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . widget . Tooltip Compat Ċ import Ġcom . element ary . tasks . R Ċ import Ġcom . element ary . tasks . core . binding . views . Repeat Limit View Binding Ċ Ċ class ĠRepeat Limit View Ġ: ĠLinearLayout Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠRepeat Limit View Binding ĊĠ Ġvar Ġon Level Update Listener : Ġ(( level : ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠ Ġvar Ġlevel : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠ Ġreturn Ġfield Ġ- Ġ 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġif Ġ( value Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . label View . text Ġ= Ġ"${ value Ġ- Ġ 1 }" ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . label View . text Ġ= Ġcontext . getString ( R . string . no _ limits ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠ Ġinit ( context ) ĊĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġinit ( context ) ĊĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĠĠĠ Ġinit ( context ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠ Ġsuper . setEnabled ( enabled ) ĊĠĠĠ Ġbinding . slider View . isEnabled Ġ= Ġenabled ĊĠ Ġ} ĊĊĠ Ġfun Ġset Limit ( level : ĠInt ) Ġ{ ĊĠĠĠ Ġbinding . slider View . progress Ġ= Ġlevel Ġ+ Ġ 1 ĊĠĠĠ Ġthis . level Ġ= Ġbinding . slider View . progress ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠ ĠView . inflate ( context , ĠR . layout . view _ repeat _ limit , Ġthis ) ĊĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĠĠĠ Ġbinding Ġ= ĠRepeat Limit View Binding ( this ) ĊĊĠĠĠ Ġbinding . hint Icon . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠ ĠToast . makeText ( context , Ġcontext . getString ( R . string . repeat _ limit ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġreturn @ setOn Long ClickListener Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ ĠTooltip Compat . set Tooltip Text ( binding . hint Icon , Ġcontext . getString ( R . string . repeat _ limit )) ĊĠĠĠ Ġbinding . slider View . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar ?, Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlevel Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġon Level Update Listener ?. invoke ( level ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( seek Bar : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( seek Bar : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠ Ġ} Ċ } Ċ