package Ġcom . be se . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Dimension Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġandroidx . view pager . widget . ViewPager . On Page ChangeListener Ċ import Ġcom . be se . R Ċ import Ġcom . blank j . util code . util . Reflect Utils Ċ import Ġcom . yout h . banner . Banner Ċ Ċ /** Ċ Ġ* ĠBanner Ġpoint ĠIndicator Ċ Ġ*/ Ċ class ĠPoint Indicator Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 , Ġdef Style Res : ĠInt Ġ= Ġ 0 ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠ Ġ@ Drawable Res ĊĠĠĠ Ġprivate Ġvar Ġchild Res Un Selected : ĠInt Ġ= ĠR . drawable . shape _ indicator _ un selected ĊĊĠĠĠ Ġ@ Drawable Res ĊĠĠĠ Ġprivate Ġvar Ġchild Res Selected : ĠInt Ġ= ĠR . drawable . shape _ indicator _ selected ĊĊĠĠĠ Ġ@ Dimension ĊĠĠĠ Ġprivate Ġvar Ġchild Margin Ġ= Ġget Dp ( 2 f ) ĊĊĠĠĠ Ġ@ Dimension ĊĠĠĠ Ġprivate Ġvar Ġchild Size Ġ= Ġget Dp ( 4 f ) ĊĊĠĠĠ Ġ@ Dimension ĊĠĠĠ Ġprivate Ġvar Ġchild Width Selected Ġ= Ġget Dp ( 1 2 f ) ĊĊĠĠĠ Ġ@ Color Int ĊĠĠĠ Ġprivate Ġvar Ġchild Color Un Selected Ġ= ĠColor . parse Color ("# 7 FFFF FFF ") ĊĊĠĠĠ Ġ@ Color Int ĊĠĠĠ Ġprivate Ġvar Ġchild Color Selected Ġ= ĠColor . WHITE ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åŃĲ View æķ°éĩı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġchild Num Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġfun Ġget Dp ( dp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġreturn Ġ( dp Value Ġ* Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ èĩªå®ļä¹ī å±ŀæĢ§ ĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Point Indicator , Ġdef Style Attr , Ġdef Style Res ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtyped Array . index Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattr Ġ= Ġtyped Array . getIndex ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ shape _ un selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Res Un Selected Ġ= Ġtyped Array . getResource Id ( R . style able . Point Indicator _ child _ shape _ un selected , Ġchild Res Un Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ shape _ selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Res Selected Ġ= Ġtyped Array . getResource Id ( R . style able . Point Indicator _ child _ shape _ selected , Ġchild Res Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Size Ġ= Ġtyped Array . get Dimension Pixel Size ( R . style able . Point Indicator _ child _ size , Ġchild Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ width _ selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Width Selected Ġ= Ġtyped Array . get Dimension Pixel Size ( R . style able . Point Indicator _ child _ width _ selected , Ġchild Width Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ margin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Margin Ġ= Ġtyped Array . get Dimension Pixel Size ( R . style able . Point Indicator _ child _ margin , Ġchild Margin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ color _ un selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Color Un Selected Ġ= Ġtyped Array . getColor ( R . style able . Point Indicator _ child _ color _ un selected , ĠColor . parse Color ("# 6 6 0 0 0 0 0 0 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( attr Ġ== ĠR . style able . Point Indicator _ child _ color _ selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Color Selected Ġ= Ġtyped Array . getColor ( R . style able . Point Indicator _ child _ color _ selected , ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Children () Ġ{ ĊĠĠĠĠĠĠĠ Ġremove All Views () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠView ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( view , Ġchild Size , Ġchild Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setBackground Resource ( child Res Un Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . background Tint List Ġ= ĠColor State List . valueOf ( child Color Un Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( view . layout Params Ġas ĠLayout Params ). set Margins ( child Margin , Ġ 0 , Ġchild Margin , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġposition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġchild . layout Params Ġas ĠLayout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . width Ġ= Ġchild Width Selected . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= Ġchild Size . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . layout Params Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . setBackground Resource ( child Res Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . background Tint List Ġ= ĠColor State List . valueOf ( child Color Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġchild . layout Params Ġas ĠLayout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . width Ġ= Ġchild Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= Ġchild Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . layout Params Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . setBackground Resource ( child Res Un Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . background Tint List Ġ= ĠColor State List . valueOf ( child Color Un Selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Banner ( banner : ĠBanner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠReflect Utils . reflect ( banner ). field (" image Urls "). get < List <* >>() ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Num Ġ= Ġdata . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( child Num Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Children () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove All Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbanner . setOn Page ChangeListener ( object Ġ: ĠOn Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset Pixels : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ViewPager ( view Pager : ĠView Pager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Pager . adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Num Ġ= Ġview Pager . adapter !!. count ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( child Num Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Children () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( object Ġ: ĠOn Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ Ġcheck ( position ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) ĊĠĠĠ Ġ} Ċ }