package Ġna . ke ph as . kit ve i . views Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . Seek Bar Ċ Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġna . ke ph as . kit ve i . R ĊĊ Ċ @ Suppress Lint (" AppCompat Custom View ") Ċ internal Ġclass ĠDis crete Seek Bar Ġ: ĠSeek Bar Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġd Min : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġtick Drawable : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcenter Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġvalue : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprogress Ġ+ Ġd Min ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Ġ= Ġvalue Ġ- Ġd Min ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( null , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġdef Style Attr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ( attrs : ĠAttributeSet ?, Ġ@ Attr Res Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attrs Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Discrete Seek Bar , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd Min Ġ= Ġarray . getInteger ( R . style able . Discrete Seek Bar _ min , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġmax Ġ- Ġd Min ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġid Ġ= Ġarray . getResource Id ( R . style able . Discrete Seek Bar _ tick Drawable , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick Drawable Ġ= ĠContext Compat . get Drawable ( context , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġarray . getResource Id ( R . style able . Discrete Seek Bar _ center Drawable , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Drawable Ġ= ĠContext Compat . get Drawable ( context , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Tick Marks ( canvas , Ġtrue , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Tick Marks ( canvas , Ġfalse , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Tick Marks ( canvas , Ġtrue , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw Tick Marks ( canvas : ĠCanvas , Ġdraw Center : ĠBoolean , Ġdraw Other : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax Ġ= Ġmax Ġ+ Ġd Min ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġif Ġ( tick Drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf W Ġ= Ġif Ġ( tick Drawable !!. intrinsic Width Ġ>= Ġ 0 ) Ġtick Drawable !!. intrinsic Width Ġ/ Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf H Ġ= Ġif Ġ( tick Drawable !!. intrinsic Height Ġ>= Ġ 0 ) Ġtick Drawable !!. intrinsic Height Ġ/ Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtick Drawable !!. setBounds (- half W , Ġ- half H , Ġhalf W , Ġhalf H ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( center Drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf W Ġ= Ġif Ġ( center Drawable !!. intrinsic Width Ġ>= Ġ 0 ) Ġcenter Drawable !!. intrinsic Width Ġ/ Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf H Ġ= Ġif Ġ( center Drawable !!. intrinsic Height Ġ>= Ġ 0 ) Ġcenter Drawable !!. intrinsic Height Ġ/ Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Drawable !!. setBounds (- half W , Ġ- half H , Ġhalf W , Ġhalf H ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtick Spacing Ġ= Ġ( width Ġ- Ġpadding Left Ġ- Ġpadding Right ). toFloat () Ġ/ Ġ( max Ġ- Ġd Min ). toFloat () ĊĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . translate ( padding Left . toFloat (), Ġ( height Ġ/ Ġ 2 ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġd Min .. max ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( draw Other Ġ&& Ġtick Drawable Ġ!= Ġnull Ġ&& Ġi Ġ> Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick Drawable !!. draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( draw Center Ġ&& Ġi Ġ== Ġ 0 Ġ&& Ġcenter Drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Drawable !!. draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . translate ( tick Spacing , Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠ Ġ} Ċ } ĊĊ