package Ġcom . a qr le i . banner view . widget . banner 2 . manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . a qr le i . banner view . widget . R Ċ import Ġcom . a qr le i . banner view . widget . enums .* Ċ import Ġcom . a qr le i . banner view . widget . options . Banner Options Ċ import Ġcom . a qr le i . banner view . widget . utils . Banner Utils Ċ Ċ /** Ċ Ġ* Ġcreated Ġby ĠA qr Le i Ġon Ġ 2 0 1 9 - 1 2 - 1 2 Ċ Ġ*/ Ċ Ċ class ĠAttribute Controller ( private Ġval Ġbanner Options : ĠBanner Options ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Checked Color Ġ= ĠColor . parse Color ("# 8 C 1 8 1 7 1 C ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Normal Color Ġ= ĠColor . parse Color ("# 8 C 6 C 6 D 7 2 ") ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ INTERVAL Ġ= Ġ 3 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġattrs ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Banner View 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Banner Attrs ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Indicator Attrs ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Indicator Attrs ( typed Array : ĠTyped Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( typed Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbanner Options . indicator Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Color Ġ= Ġget Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ checked _ color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Checked Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal Color Ġ= Ġget Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ normal _ color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Normal Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal Indicator Width Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ normal _ width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBanner Utils . dp 2 px ( 8 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Style Ġ= ĠIndicator Style . values ()[ ( getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ style , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ))] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslide Mode Ġ= ĠIndicator Slide Mode . values ()[ getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ slide _ mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 )] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Gap Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ gap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal Indicator Width ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslider Height Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ height , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal Indicator Width Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Indicator Width Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ checked _ width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal Indicator Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Banner Attrs ( typed Array : ĠTyped Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtyped Array . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbanner Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Gravity Ġ= ĠIndicator Gravity . values ()[ it . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ gravity , Ġ 0 )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Position Ġ= ĠIndicator Position . values ()[ it . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ position , Ġ 0 )] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( indicator Gravity Ġ== ĠIndicator Gravity . BI AS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Gravity Bias Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Float ( R . style able . Banner View 2 _ banner _ indicator _ bias , Ġ 0 . 5 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Vertical Bias Ġ= Ġit . get Float ( R . style able . Banner View 2 _ banner _ vertical _ indicator _ bias , 1 . 0 F ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getInt ( R . style able . Banner View 2 _ banner _ indicator _ visibility , ĠView . VISIBLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindicator Margin Start Ġ= Ġit . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ margin Start , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBanner Options . Indicator Margin . default Margin . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindicator Margin Top Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ margin Top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBanner Options . Indicator Margin . default Margin . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindicator Margin End Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ margin End , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBanner Options . Indicator Margin . default Margin . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindicator Margin Bottom Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ indicator _ margin Bottom , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBanner Options . Indicator Margin . default Margin . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Margin . param Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġindicator Margin Start . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġindicator Margin Top . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġindicator Margin End . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġindicator Margin Bottom . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbanner Use Ratio Ġ= Ġit . getBoolean ( R . style able . Banner View 2 _ banner _ use _ ratio , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( banner Use Ratio ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Height Ratio Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getString ( R . style able . Banner View 2 _ width Height Ratio ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġit . getInteger ( R . style able . Banner View 2 _ interval , ĠDEFAULT _ INTERVAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Play Ġ= Ġit . getBoolean ( R . style able . Banner View 2 _ is Auto , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Can Loop Ġ= Ġit . getBoolean ( R . style able . Banner View 2 _ banner _ can _ loop , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreveal Width Ġ= Ġit . get Dimension ( R . style able . Banner View 2 _ banner _ reveal _ width , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer Style Ġ= ĠTransformer Style . values ()[ it . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ transformer _ style , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 )] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Page Limit Ġ= Ġit . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Banner View 2 _ banner _ offset _ page _ limit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Pager 2 . OFF SCREEN _ PAGE _ LIMIT _ DEFAULT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer Scale Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Float ( R . style able . Banner View 2 _ banner _ transformer _ scale , Ġ 0 . 8 5 F ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }