package Ġme . j ess yan . mv parms . phot om ark . mvp . ui . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . support . v 7 . widget . Default Item Animator Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . j ess . arms . base . Default Adapter Ċ import Ġcom . j ess . arms . utils . Preconditions . checkNotNull Ċ import Ġcom . j ess . arms . utils . Ui Utils Ċ import Ġcom . view . jame son . library . Card Scale Helper Ċ import Ġcommon . App Component Ċ import Ġcommon . WE Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġme . j ess yan . mv parms . phot om ark . R Ċ import Ġme . j ess yan . mv parms . phot om ark . app . util . Blur Bitmap Utils Ċ import Ġme . j ess yan . mv parms . phot om ark . app . util . View Switch Utils Ċ import Ġme . j ess yan . mv parms . phot om ark . di . component . D agger Post er Main Component Ċ import Ġme . j ess yan . mv parms . phot om ark . di . module . Post er Main Module Ċ import Ġme . j ess yan . mv parms . phot om ark . mvp . contract . Post er Main Contract Ċ import Ġme . j ess yan . mv parms . phot om ark . mvp . presenter . Post er Main Presenter Ċ import Ġme . j ess yan . mv parms . phot om ark . mvp . ui . adapter . Card Adapter Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠéĢļè¿ĩ Template çĶŁæĪĲ å¯¹åºĶ é¡µéĿ¢ çļĦ M VP åĴĮ D agger ä»£çłģ , è¯· æ³¨æĦı è¾ĵåħ¥ æ¡Ĩ ä¸Ń è¾ĵåħ¥ çļĦ åĲįåŃĹ å¿ħé¡» çĽ¸åĲĮ Ċ Ġ* Ġ çĶ±äºİ æ¯ıä¸ª é¡¹çĽ® åĮħ ç»ĵæŀĦ éĥ½ ä¸į ä¸Ģå®ļ çĽ¸åĲĮ , æīĢä»¥ æ¯ı çĶŁæĪĲ ä¸Ģä¸ª æĸĩä»¶ éľĢè¦ģ èĩªå·± å¯¼åħ¥ import åĮħ åĲį , åı¯ä»¥åľ¨ è®¾ç½® ä¸Ń è®¾ç½® èĩªåĬ¨ å¯¼åħ¥ åĮħ åĲį Ċ Ġ* Ġ è¯· åľ¨ å¯¹åºĶ åĮħ ä¸ĭ æĮī ä»¥ä¸ĭ é¡ºåºı çĶŁæĪĲ å¯¹åºĶ ä»£çłģ , Contract -> Model -> Presenter -> Activity -> Module -> Component Ċ Ġ* Ġ åĽłä¸º çĶŁæĪĲ Activity æĹ¶ , Module åĴĮ Component è¿ĺ æ²¡ çĶŁæĪĲ , ä½Ĩæĺ¯ Activity ä¸Ń æľī å®ĥä»¬ çļĦ å¼ķçĶ¨ , æīĢä»¥ ä¼ļ æĬ¥éĶĻ , ä½Ĩæĺ¯ ä¸į çĶ¨ çĲĨ ä¼ļ Ċ Ġ* Ġ ç»§ç»Ń å°Ĩ Module åĴĮ Component çĶŁæĪĲ å®Į åĲİ , ç¼ĸè¯ĳ ä¸Ģä¸ĭ é¡¹çĽ® åĨį åĽŀ åĪ° Activity , æĮī æıĲç¤º ä¿®æĶ¹ ä¸Ģä¸ª æĸ¹æ³ķ åĲį åį³åı¯ Ċ Ġ* Ġå¦Ĥæŀľ æĥ³ çĶŁæĪĲ Fragment çļĦ çĽ¸åħ³ æĸĩä»¶ , åĪĻ å°Ĩ ä¸ĬéĿ¢ æŀĦå»º é¡ºåºı ä¸ŃçļĦ Activity æį¢ ä¸º Fragment , å¹¶ å°Ĩ Component ä¸Ń inject æĸ¹æ³ķ çļĦåıĤæķ° æĶ¹ ä¸º æŃ¤ Fragment Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġz hi Peng . S Ġon Ġ 2 0 1 7 / 5 / 3 1 . Ċ Ġ*/ Ċ Ċ class ĠPost er MainActivity Ġ: ĠWE Activity < Post er Main Presenter >(), ĠPost er Main Contract . View Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Blur View : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm List Ġ= ĠArrayList < Int >() ĊĠĠĠ Ġprivate Ġvar Ġm Card Scale Helper : ĠCard Scale Helper ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Blur Runnable : ĠRunnable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Last Pos Ġ= Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Activity Component ( app Component : ĠApp Component ) Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Post er Main Component ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. app Component ( app Component ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. poster Main Module ( Post er Main Module ( this )) Ġ// è¯· å°Ĩ Post er Main Module () ç¬¬ä¸Ģä¸ª é¦ĸ åŃĹ æ¯į æĶ¹ ä¸º å°ı åĨĻ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( this ). inflate ( R . layout . activity _ main , Ġnull , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Presenter . request Banner () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Adapter ( adapter : ĠDefault Adapter <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmain _ banner _ rv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġconfig Re cycle View ( main _ banner _ rv , Linear LayoutManager ( this , ĠLinearLayoutManager . HORIZONTAL , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfig Re cycle View ( re cyclerView : ĠRecyclerView ?, Ġlayout Manager : ĠRecyclerView . LayoutManager ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView ?. layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ åı¯ä»¥ ç¡®å®ļ æ¯ıä¸ª item çļĦ é«ĺåº¦ æĺ¯ åĽº å®ļçļĦ ï¼Į è®¾ç½® è¿Ļä¸ª éĢīé¡¹ åı¯ä»¥ æıĲ é«ĺ æĢ§èĥ½ ĊĠĠĠĠĠĠĠ Ġre cyclerView ?. set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġre cyclerView ?. item Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠ Ġ// Ġm RecyclerView ç»ĳå®ļ scale æķĪæŀľ ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper Ġ= ĠCard Scale Helper () ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper !!. currentItem Pos Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper !!. attach To RecyclerView ( main _ banner _ rv ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġinit Blur Background () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm List . add ( R . drawable . pic 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm List . add ( R . drawable . pic 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm List . add ( R . drawable . pic 6 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( this , ĠLinearLayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġmain _ banner _ rv . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġmain _ banner _ rv . adapter Ġ= ĠCard Adapter ( m List ) ĊĠĠĠĠĠĠĠ Ġ// Ġm RecyclerView ç»ĳå®ļ scale æķĪæŀľ ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper Ġ= ĠCard Scale Helper () ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper !!. currentItem Pos Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġm Card Scale Helper !!. attach To RecyclerView ( main _ banner _ rv ) ĊĊĠĠĠĠĠĠĠ Ġinit Blur Background () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Blur Background () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Blur View Ġ= ĠfindViewById ( R . id . blur View ) Ġas ĠImageView ĊĠĠĠĠĠĠĠ Ġmain _ banner _ rv . add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll StateChanged ( re cyclerView : ĠRecyclerView ?, ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Scroll StateChanged ( re cyclerView , ĠnewState ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newState Ġ== ĠRecyclerView . SCROLL _ STATE _ IDLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Background Change () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġnotify Background Change () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnotify Background Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Last Pos Ġ== Ġm Card Scale Helper !!. currentItem Pos ) Ġreturn ĊĠĠĠĠĠĠĠ Ġm Last Pos Ġ= Ġm Card Scale Helper !!. currentItem Pos ĊĠĠĠĠĠĠĠ Ġval Ġres Id Ġ= Ġm List [ m Card Scale Helper !!. currentItem Pos ] ĊĠĠĠĠĠĠĠ Ġm Blur View !!. remove Callbacks ( m Blur Runnable ) ĊĠĠĠĠĠĠĠ Ġm Blur Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap Factory . decode Resource ( resources , Ġres Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Switch Utils . start Switch Background Anim ( m Blur View , ĠBl ur Bitmap Utils . get Blur Bitmap ( m Blur View !!. context , Ġbitmap , Ġ 1 5 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Blur View !!. post Delayed ( m Blur Runnable , Ġ 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . main _ setting _ iv Ġ-> Ġintent . set Class ( this , ĠSetting Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . main _ poster _ btn Ġ-> Ġintent . set Class ( this , ĠPost er Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlaunch Activity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( message ) ĊĠĠĠĠĠĠĠ ĠUi Utils . Snackbar Text ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch Activity ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( intent ) ĊĠĠĠĠĠĠĠ ĠUi Utils . startActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkill My self () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊ Ċ }