package Ġcom . a qr le i . banner view . widget . indicator . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . a qr le i . banner view . widget . indicator . enums . Indicator Slide Mode Ċ import Ġcom . a qr le i . banner view . widget . indicator . options . Indicator Options Ċ Ċ /** Ċ Ġ* Ġcreated Ġby ĠA qr Le i Ġon Ġ 2 0 1 9 - 1 2 - 1 1 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Indicator View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠView ( context , Ġattrs , Ġdef Style Attr ), ĠI Indicator Ġ{ ĊĊĠĠĠ Ġprotected Ġvar Ġm Indicator Options : ĠIndicator Options Ġ= ĠIndicator Options () ĊĊĠĠĠ Ġprivate Ġvar Ġview Pager 2 : ĠView Pager 2 ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġview Pager : ĠView Pager ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm On Page Change Callback Ġ= Ġobject Ġ: ĠView Pager 2 . On Page Change Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset Pixels : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Sc rolled ( position , Ġposition Offset , Ġposition Offset Pixels ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Selected ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Scroll StateChanged ( state ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠpageSize : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Indicator Options . pageSize ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Indicator Options . pageSize Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcurrent Position : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Indicator Options . current Position ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Indicator Options . current Position Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġindicator Gap : ĠInt Ġget () Ġ= Ġm Indicator Options . indicator Gap ĊĊĠĠĠ Ġvar Ġslide Progress : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Indicator Options . slide Progress ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Indicator Options . slide Progress Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġslide Mode : ĠIndicator Slide Mode Ġget () Ġ= Ġm Indicator Options . slide Mode ĊĊĠĠĠ Ġval Ġnormal Color : ĠInt Ġget () Ġ= Ġm Indicator Options . normal Color ĊĊĠĠĠ Ġval Ġchecked Color : ĠInt Ġget () Ġ= Ġm Indicator Options . checked Color ĊĊĠĠĠ Ġval Ġnormal Indicator Width : ĠFloat Ġget () Ġ= Ġm Indicator Options . normal Indicator Width ĊĊĠĠĠ Ġval Ġchecked Indicator Width : ĠFloat Ġget () Ġ= Ġm Indicator Options . checked Indicator Width ĊĊĠĠĠ Ġfun Ġrefresh Indicator Options ( block : ĠIndicator Options . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Indicator Options . apply ( block ) ĊĠĠĠĠĠĠĠ Ġnotify Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup With ViewPager ( view Pager : ĠView Pager ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . view Pager Ġ= Ġview Pager ĊĠĠĠĠĠĠĠ Ġnotify Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup With ViewPager 2 ( view Pager 2 : ĠView Pager 2 ?, Ġblock : Ġ( Indicator Options . () Ġ-> ĠUnit )? = Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . view Pager 2 Ġ= Ġview Pager 2 ĊĠĠĠĠĠĠĠ Ġblock ?. let Ġ{ Ġm Indicator Options . apply ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġnotify Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġset Indicator Options ( options : ĠIndicator Options ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Indicator Options Ġ= Ġoptions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġnotify Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ViewPager () ĊĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup ViewPager () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Pager 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager 2 !!. unregister On Page Change Callback ( m On Page Change Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager 2 !!. register On Page Change Callback ( m On Page Change Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager 2 !!. adapter ?. item Count ?. let Ġ{ ĠpageSize Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( view Pager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager !!. remove On Page ChangeListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager !!. add On Page ChangeListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager !!. adapter ?. count ?. let Ġ{ ĠpageSize Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage Selected ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpage Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( slide Mode Ġ== ĠIndicator Slide Mode . NORMAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslide Progress Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage Sc rolled ( position , Ġposition Offset , Ġposition Offset Pixels ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpage Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( slide Mode Ġ!= ĠIndicator Slide Mode . NORMAL Ġ&& ĠpageSize Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ% ĠpageSize Ġ== ĠpageSize Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Position Ġ= Ġif Ġ( position Offset Ġ< Ġ 0 . 5 ) Ġposition Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslide Progress Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslide Progress Ġ= Ġposition Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage Scroll StateChanged ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpage Scroll StateChanged ( state : ĠInt ) Ġ{} Ċ Ċ }