package Ġcom . app . legend . kan fan ba . main . fragment ĊĊ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġcom . app . legend . kan fan ba . R Ċ import Ġcom . app . legend . kan fan ba . bean . Video Ċ import Ġcom . app . legend . kan fan ba . main . adapter . New est Adapter Ċ import Ġcom . app . legend . kan fan ba . main . presenter . IN ew est Fragment Ċ import Ġcom . app . legend . kan fan ba . main . presenter . New est Fragment Presenter Ċ import Ġcom . app . legend . kan fan ba . play . activity . Play Activity Ċ import Ġcom . app . legend . rum inas u . fragments . Base Presenter Fragment Ċ import Ġcom . app . legend . rum inas u . utils . Main Item Space Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main _ new est .* Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠNew est Fragment Ġ: ĠBase Presenter Fragment < IN ew est Fragment , New est Fragment Presenter >(), IN ew est Fragment { ĊĊĊĠĠĠ Ġval Ġadapter = New est Adapter () ĊĊĠĠĠ Ġlateinit Ġvar Ġnew _ list : RecyclerView ĊĠĠĠ Ġlateinit Ġvar Ġnew _ swipe : Swipe Refresh Layout ĊĊĠĠĠ Ġprivate Ġvar Ġp = 1 ĊĊĠĠĠ Ġprivate Ġvar Ġvp = 1 ĊĊĠĠĠ Ġprivate Ġvar Ġbottom = false ĊĊĠĠĠ Ġprivate Ġvar Ġrefresh = false ĊĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( list : ĠMutable List < Video >) Ġ{ ĊĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( list . isNotEmpty ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( refresh ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . clean () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context ," å·² èİ·åıĸ æľĢæĸ° æķ°æį® ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh = false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ swipe . is Refresh ing = refresh ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Videos ( list ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Ġ+= Ġ 1 // æ·»åĬł ä¸Ģæ¬¡ ï¼Į æĸ¹ä¾¿ èİ·åıĸ ä¸ĭ ä¸Ģ é¡µ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp = p ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom = false ĊĊĊĊĠĠĠĠĠĠĠ Ġ} else { // èİ·å¾Ĺ çļĦ åĪĹè¡¨ æĺ¯ ç©º çļĦ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom = true ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter (): ĠNew est Fragment Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNew est Fragment Presenter ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĊĊĠĠĠĠĠĠĠ Ġval Ġview = in flater . inflate ( R . layout . fragment _ main _ new est , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġget Component ( view ) ĊĊĠĠĠĠĠĠĠ Ġinit Swipe () ĊĊĠĠĠĠĠĠĠ Ġinit List () ĊĊĠĠĠĠĠĠĠ ĠgetData ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Component ( view : ĠView ){ ĊĊĠĠĠĠĠĠĠ Ġnew _ list = view . findViewById ( R . id . new _ list ) ĊĠĠĠĠĠĠĠ Ġnew _ swipe = view . findViewById ( R . id . new _ swipe ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit List (){ ĊĊĠĠĠĠĠĠĠ Ġval Ġgrid LayoutManager Ġ= Grid LayoutManager ( context , 2 ) ĊĠĠĠĠĠĠĠ Ġnew _ list . adapter = adapter ĊĠĠĠĠĠĠĠ Ġnew _ list . layout Manager = grid LayoutManager ĊĠĠĠĠĠĠĠ Ġnew _ list . addItem Decoration ( Main Item Space ()) ĊĊĠĠĠĠĠĠĠ Ġnew _ list . add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new _ list . can Scroll Vert ically ( 1 )){ // åĪ° åºķ éĥ¨ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vp != p ){ // åĪ¤æĸŃ æĺ¯åĲ¦ åĬłè½½ è¿ĩ ï¼Į å¦Ĥæŀľ æĺ¯ ï¼Į åĪĻ ä¸į åĬłè½½ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bottom ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetData ( p )// èİ·åıĸ ä¸ĭ ä¸Ģ é¡µ æķ°æį® ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġadapter . on New est Item Click = object Ġ: On New est Item Click { ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclick Item ( position : ĠInt , Ġvideo : ĠVideo ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Play Video ( video ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Swipe (){ ĊĊĠĠĠĠĠĠĠ Ġnew _ swipe . set Progress View Offset ( true , 2 0 , 2 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġnew _ swipe . setColor Scheme Resources ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . holo _ blue _ bright , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . holo _ green _ light , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . holo _ orange _ light , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . holo _ red _ light ) ĊĊĠĠĠĠĠĠĠ Ġnew _ swipe . setOn Refresh Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh = true ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp = 1 // éĩį ç½® p ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp = p ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetData ( p ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetData ( page : Int ){ ĊĊĠĠĠĠĠĠĠ Ġpresenter . getData ( page ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Play Video ( video : ĠVideo ){ ĊĊĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( context , Play Activity :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġintent . putExtra (" video ", video ) ĊĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ