package Ġcom . iam m ert . photo view indicator lib Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . github . chr is ban es . photo view . On Matrix Changed Listener Ċ import Ġcom . github . chr is ban es . photo view . Photo View Ċ Ċ class ĠPhoto View Indicator Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) Ġ: ĠView ( context , Ġattrs , Ġdef Style Attr ), ĠOn Matrix Changed Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġview Width Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġview Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġindicator Width Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġbackground Rec F : ĠRect F Ġ= ĠRect F () ĊĠĠĠ Ġprivate Ġvar Ġindicator Rect F : ĠRect F Ġ= ĠRect F () ĊĊĠĠĠ Ġprivate Ġval Ġbackground Paint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠ Ġprivate Ġval Ġindicator Paint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĊĠĠĠ Ġprivate Ġvar Ġinitial Photo View Rect F : ĠRect F ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Photo View Indicator ) ĊĠĠĠĠĠĠĠ Ġval Ġbar Color Ġ= Ġattributes . getColor ( R . style able . Photo View Indicator _ bar Color , ĠContext Compat . getColor ( context , ĠR . color . color Photo View Indicator Bar Background )) ĊĠĠĠĠĠĠĠ Ġval Ġindicator Color Ġ= Ġattributes . getColor ( R . style able . Photo View Indicator _ indicator Color , ĠContext Compat . getColor ( context , ĠR . color . color Photo View Indicator Color )) ĊĠĠĠĠĠĠĠ Ġattributes . recycle () ĊĊĠĠĠĠĠĠĠ Ġbackground Paint . color Ġ= Ġbar Color ĊĠĠĠĠĠĠĠ Ġindicator Paint . color Ġ= Ġindicator Color ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Photo View ( photo View : ĠPhoto View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġphoto View . setOn Matrix ChangeListener ( this ) ĊĠĠĠĠĠĠĠ Ġphoto View . add On Layout ChangeListener Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġinitial Photo View Rect F Ġ= Ġphoto View . attach er . display Rect Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Matrix Changed ( rect : ĠRect F ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Width Ġ= ĠMath . abs ( rect !!. left ) Ġ+ ĠMath . abs ( rect . right ) ĊĠĠĠĠĠĠĠ Ġval Ġscroll able Width Ġ= Ġmatrix Width Ġ- Ġscreen Width () ĊĊĠĠĠĠĠĠĠ Ġval Ġratio Ġ= Ġmatrix Width Ġ/ Ġscreen Width () ĊĠĠĠĠĠĠĠ Ġindicator Width Ġ= Ġ( view Width Ġ/ Ġratio ). toInt () ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Matrix Left Ġ= ĠMath . abs ( rect . left ) ĊĠĠĠĠĠĠĠ Ġval Ġwidth Difference Ġ= Ġview Width Ġ- Ġindicator Width ĊĊĠĠĠĠĠĠĠ Ġval Ġindicator Left Position Ġ= Ġwidth Difference Ġ* Ġcurrent Matrix Left Ġ/ Ġscroll able Width ĊĊĠĠĠĠĠĠĠ Ġindicator Rect F . set ( indicator Left Position , Ġ 0 f , Ġindicator Left Position Ġ+ Ġindicator Width . toFloat (), Ġview Height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( w , Ġh , Ġold w , Ġold h ) ĊĠĠĠĠĠĠĠ Ġview Width Ġ= Ġw ĊĠĠĠĠĠĠĠ Ġview Height Ġ= Ġh ĊĠĠĠĠĠĠĠ Ġbackground Rec F . set ( 0 f , Ġ 0 f , Ġview Width . toFloat (), Ġview Height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġinitial Photo View Rect F ?. let Ġ{ Ġon Matrix Changed ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Round Rect ( background Rec F , Ġview Height Ġ/ Ġ 2 . toFloat (), Ġview Height Ġ/ Ġ 2 . toFloat (), Ġbackground Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Round Rect ( indicator Rect F , Ġview Height Ġ/ Ġ 2 . toFloat (), Ġview Height Ġ/ Ġ 2 . toFloat (), Ġindicator Paint ) ĊĠĠĠ Ġ} Ċ }