package Ġcom . github . k ong pf 8 8 4 8 . animation . activity . lott ie Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Looper Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Accel erate Interpolator Ċ import Ġandroid . widget . Scroller Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . R Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . adapter . ViewPager Adapter Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . base . Base Activity Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . bean . Lot tie Config Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . utils . Asset Utils Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . utils . Guide Transformer Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . utils . Lot tie Utils Ċ import Ġcom . github . k ong pf 8 8 4 8 . animation . utils . Rx Java Utils Ċ import Ġcom . k ong pf . common helper . Screen Helper Ċ import Ġcom . tm all . ultr av iew pager . Ul tra ViewPager Ċ import Ġkotlinx . android . synt hetic . main . activity _ lott ie _ pd j _ guide .* Ċ import Ġjava . lang . reflect . Field ĊĊ Ċ class ĠP dj Guide Activity Ġ: ĠBase Activity (), ĠView Pager . On Page ChangeListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlo tt ie Config : ĠL ot tie Config ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġreal Width Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġreal Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġlo tt ie List Ġ= Ġmutable ListOf < Lot tie Animation View >() ĊĠĠĠ Ġprivate Ġval Ġview List Ġ= Ġmutable ListOf < View >() ĊĠĠĠ Ġprivate Ġvar Ġm State Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar ĠcurrentPage = 0 ĊĠĠĠ Ġprivate Ġvar Ġbutton Alpha : ĠObject Animator ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbutton Translation : ĠObject Animator ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtranslation Offset = 0 f ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDrawable è½¬æį¢ æĪĲ Bitmap ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdrawable To Bitmap ( drawable : ĠDrawable ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( drawable . intrinsic Width , Ġdrawable . intrinsic Height , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġdrawable . intrinsic Width , Ġdrawable . intrinsic Height ) ĊĠĠĠĠĠĠĠ Ġdrawable . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® ViewPager æ»ĳ åĬ¨ éĢŁ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset ViewPager Duration ( view Pager : ĠView Pager , Ġnew Duration : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new Duration Ġ<= Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield : ĠField Ġ= ĠView Pager :: class . java . getDeclared Field (" m Scroller ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . set ( view Pager , Ġobject Ġ: ĠSc roller ( application Context , ĠAccel erate Interpolator ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstart Scroll ( start X : ĠInt , Ġstart Y : ĠInt , Ġdx : ĠInt , Ġdy : ĠInt , Ġduration : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . start Scroll ( start X , Ġstart Y , Ġdx , Ġdy , Ġnew Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe 1 . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 2 : ĠNoSuch Field Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe 2 . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ lott ie _ pd j _ guide ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate End ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate End ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġget Lot tie Config () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġlo tt ie List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . cancel Animation () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Translation ?. cancel () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ éħįç½® ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Lot tie Config () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠRx Java Utils . run ( object Ġ: ĠRx Java Utils . On Rx Android Listener < Lot tie Config >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background (): ĠL ot tie Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAsset Utils . read Asset File ( application Context , Ġ" Lot tie Config . json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( config : ĠL ot tie Config ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Success () Ġcalled Ġwith : Ġconfig Ġ= Ġ$ config ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit View ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onError () Ġcalled Ġwith : Ġe Ġ= Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ UI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit View ( config : ĠL ot tie Config ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġthis . lott ie Config Ġ= Ġconfig ĊĠĠĠĠĠĠĠ Ġthis . translation Offset = Screen Helper . dp 2 px ( application Context , 4 5 f ). toFloat () ĊĠĠĠĠĠĠĠ Ġthis . button Alpha = Object Animator . of Float ( iv _ start , View . ALPHA , 0 . 0 f , 1 . 0 f ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration = config . button Anim Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . button Translation Ġ= ĠObject Animator . of Float ( iv _ start , ĠView . TRANSL ATION _ Y , Ġ 0 f , translation Offset ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration = config . button Anim Time ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreal Width Ġ= ĠScreen Helper . get Screen Width ( application Context ) ĊĠĠĠĠĠĠĠ Ġreal Height Ġ= Ġ( 1 3 3 4 . 0 f Ġ* Ġreal Width Ġ/ Ġ 7 5 0 . 0 f ). toInt () ĊĊĠĠĠĠĠĠĠ Ġiv Jump . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġiv _ start . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlo tt ie _ title . tag = false ĊĠĠĠĠĠĠĠ Ġlo tt ie _ title . layout Params . width Ġ= Ġreal Width ĊĠĠĠĠĠĠĠ Ġlo tt ie _ title . layout Params . height Ġ= Ġreal Height ĊĠĠĠĠĠĠĠ Ġlo tt ie _ bg . layout Params . width Ġ= Ġreal Width ĊĠĠĠĠĠĠĠ Ġlo tt ie _ bg . layout Params . height Ġ= Ġreal Height ĊĊĠĠĠĠĠĠĠ ĠL ot tie Utils . load Assets Lot tie Zip File ( context Ġ= Ġapplication Context , Ġlo tt ie ImageView Ġ= Ġlo tt ie _ bg , ĠfileName Ġ= Ġconfig . lott ie Bg Name , Ġrepeat Count Ġ= Ġ 0 , Ġauto Play Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġset ViewPager Duration ( view pager . view Pager , Ġconfig . page Anim Time . toInt ()) ĊĠĠĠĠĠĠĠ Ġview pager . set Off screen Page Limit ( config . total Page Num ) ĊĠĠĠĠĠĠĠ Ġview pager . setOn Page ChangeListener ( this @ P dj Guide Activity ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® Page Transformer ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġview pager . set Page Transformer ( false , ĠGuide Transformer ( this @ P dj Guide Activity , Ġconfig . radius )) ĊĊĠĠĠĠĠĠĠ Ġfor ( position Ġin Ġ 0 Ġuntil Ġconfig . total Page Num ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( this @ P dj Guide Activity ). inflate ( R . layout . item _ lott ie _ pd j _ guide , Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlo tt ie Animation View : ĠL ot tie Animation View Ġ= Ġview . findViewById ( R . id . pd j _ guide _ lott ie _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . layout Params . width Ġ= Ġreal Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . layout Params . height Ġ= Ġreal Height ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL ot tie Utils . load Assets Lot tie Zip File ( context Ġ= Ġapplication Context , Ġlo tt ie ImageView Ġ= Ġlo tt ie Animation View , ĠfileName Ġ= Ġconfig . lott ie Main [ position ]. lott ie Name , Ġrepeat Count Ġ= Ġ 0 , Ġauto Play Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie List . add ( lott ie Animation View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview List . add ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview pager . adapter Ġ= ĠView Pager Adapter ( view List ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ·»åĬł åľĨ çĤ¹ æĮĩ ç¤º ç¬¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġview pager . init Indicator () ĊĠĠĠĠĠĠĠ Ġview pager . indicator . set Orientation ( Ul tra ViewPager . Orientation . HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Normal Icon ( drawable To Bitmap ( Context Compat . get Drawable ( application Context , ĠR . drawable . guide _ white _ dot ) !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Focus Icon ( drawable To Bitmap ( Context Compat . get Drawable ( application Context , ĠR . drawable . guide _ dark _ dot ) !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Indicator Padding ( Screen Helper . dp 2 px ( application Context , Ġ 5 . 0 F )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Margin ( 0 , Ġ 0 , Ġ 0 , ĠScreen Helper . dp 2 px ( application Context , Ġ 2 0 . 0 F )) ĊĠĠĠĠĠĠĠ Ġview pager . indicator . set Gravity ( Gravity . BOTTOM Ġor ĠGr avity . CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠ Ġview pager . indicator . build () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¼Ģ åĲ¯åĬ¨ çĶ» ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠL ooper . my Queue (). add Idle Handler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Anim ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩį ç½® åĬ¨çĶ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreset All Anim () Ġ{ ĊĠĠĠĠĠĠĠ Ġlo tt ie List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . cancel Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . progress Ġ= Ġ 0 . 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop All Anim Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġlo tt ie List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . removeAll Animator Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° åĬ¨çĶ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupdate Anim ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ>= Ġ 0 Ġ&& Ġposition Ġ< Ġlo tt ie List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlo tt ie Animation View Ġ= Ġlo tt ie List [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . add Animator Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Animation End ( animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m State Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġlo tt ie Config !!. total Page Num Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview pager . setCurrent Item ( position Ġ+ Ġ 1 , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset All Anim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . play Animation () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie _ title . alpha = 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflag =( lott ie _ title . tag Ġas ĠBoolean ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie _ title . tag = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL ot tie Utils . load Assets Lot tie Zip File ( context Ġ= Ġapplication Context , Ġlo tt ie ImageView Ġ= Ġlo tt ie _ title , ĠfileName Ġ= Ġlo tt ie Config !!. lott ie Title [ position ]. lott ie Name , Ġrepeat Count Ġ= Ġ 0 , Ġauto Play Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie _ title . play Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġå½ĵ æ»ĳ åĬ¨ åĪ° æľĢåĲİ ä¸Ģ é¡µ æĹ¶ ï¼Į æĺ¾ç¤º start æĮīéĴ® å¹¶ åģļ åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( position == lott ie Config !!. total Page Num - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ start . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Alpha ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Float Values ( 0 . 0 f , 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Translation ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Float Values ( 0 f ,- translation Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Page Scroll StateChanged () Ġcalled Ġwith : Ġstate Ġ= Ġ$ state ") ĊĠĠĠĠĠĠĠ Ġthis . m State Ġ= Ġstate ĊĠĠĠĠĠĠĠ Ġif Ġ( this . m State Ġ== ĠView Pager . SCROLL _ STATE _ IDLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Anim ( this . currentPage ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop All Anim Listener () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Page Sc rolled () Ġcalled Ġwith : Ġposition Ġ= Ġ$ position , Ġposition Offset Ġ= Ġ$ position Offset , Ġposition Offset Pixels Ġ= Ġ$ position Offset Pixels ") ĊĠĠĠĠĠĠĠ Ġif Ġ( position Offset Ġ== Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . currentPage Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Offset Ġ!= Ġ 0 . 0 F ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ!= Ġthis . currentPage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie _ title . alpha = position Offset Ġ- Ġ 0 . 5 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie _ title . alpha = 0 . 5 F Ġ- Ġposition Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå½ĵ ä»İ æľĢåĲİ ä¸Ģ é¡µ åĲĳ åīį æ»ĳ åĬ¨ æĹ¶ , åģļ åĬ¨çĶ» å¹¶ éļĲèĹı start æĮīéĴ® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġif ( this . currentPage ==( lott ie Config !!. total Page Num - 1 ) Ġ&& Ġposition ==( this . currentPage - 1 ) Ġ&& Ġposition Offset > 0 . 0 f Ġ&& Ġ! button Translation !!. isRunning ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . button Alpha ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Float Values ( 1 . 0 f , 0 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . button Translation ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove All Listeners () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Float Values (- translation Offset , 0 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Listener ( object : Animator Listener Adapter (){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Animation End ( animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ start . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Page Selected () Ġcalled Ġwith : Ġposition Ġ= Ġ$ position ") ĊĠĠĠĠĠĠĠ Ġ// this . currentPage Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġlo tt ie _ title . tag = false ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ