package Ġviews Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroidx . appcompat . widget . AppCompat Seek Bar Ċ Ċ internal Ġclass ĠAppCompat 2 3 Seek Bar ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) ĊĠ Ġ: ĠAppCompat Seek Bar ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠ Ġprivate Ġval Ġshift : ĠInt ĊĊĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , Ġnull , Ġandroid . R . attr . seek Bar Style ) ĊĊĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġthis ( context , Ġattrs , Ġandroid . R . attr . seek Bar Style ) ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġif Ġ( attrs Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġwith ( context . obtain Styled Attributes ( attrs , Ġorg . sto y icker . ding er . views . R . style able . AppCompat 2 3 Seek Bar , Ġdef Style Attr , Ġ 0 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġshift Ġ= Ġget Integer ( org . sto y icker . ding er . views . R . style able . AppCompat 2 3 Seek Bar _ min , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ// ĠForce Ġrefresh Ġto Ġapply Ġthe Ġshift ĊĠĠĠĠĠĠĠ Ġprogress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġmax Ġ= Ġmax ĊĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġshift Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Progress ( progress : ĠInt ) Ġ{ ĊĠĠĠ Ġclear Animation () ĊĠĠĠ Ġval Ġanim Ġ= ĠValue Animator . of Int ( get Progress (), Ġprogress Ġ- Ġshift ) ĊĠĠĠ Ġanim . duration Ġ= Ġcontext . resources . getInteger ( android . R . integer . config _ short Anim Time ). to Long () ĊĠĠĠ Ġanim . interpol ator Ġ= ĠAccel erate De cel erate Interpolator () ĊĠĠĠ Ġanim . add Update Listener Ġ{ Ġanimation Ġ-> ĊĠĠĠĠĠ Ġval Ġanim Progress Ġ= Ġanimation . animated Value Ġas ĠInt ĊĠĠĠĠĠ Ġsuper . set Progress ( anim Progress ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġanim . start () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Max ( max : ĠInt ) Ġ= Ġsuper . setMax ( max Ġ- Ġshift ) Ċ } Ċ