package Ġcom . he . fast android . ui . fragment Ċ Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . he . common . base . Base Fragment Ċ import Ġcom . he . fast android . R Ċ import Ġcom . he . fast android . remote . Service Ċ import Ġcom . he . fast android . ui . activity . MainActivity Ċ import Ġcom . he . fast android . ui . adapter . Video Adapter Ċ import Ġcom . he . http . request Api Ċ import Ġcom . sh uy u . gs y vide op layer . G SY Video Manager Ċ import Ġkotlinx . android . synt hetic . main . fragment _ video .* Ċ import Ġkotlinx . coroutines . launch ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠLi am . Zh eng Ġon Ġ 2 0 2 0 / 1 0 / 2 0 Ċ Ġ* Ċ Ġ* ĠDes : Ċ Ġ*/ Ċ class ĠVideo Fragment Ġ: ĠBase Fragment < MainActivity >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlist Normal Adapter : ĠVideo Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠVideo Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ video ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist Normal Adapter Ġ= ĠVideo Adapter () ĊĠĠĠĠĠĠĠ Ġvideo _ list . adapter Ġ= Ġlist Normal Adapter ĊĠĠĠĠĠĠĠ Ġvideo _ list . layout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġvideo _ 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 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¤§äºİ 0 è¯´æĺİ æľī æĴŃæĶ¾ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( G SY Video Manager . instance (). play Position Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å½ĵåīį æĴŃæĶ¾ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠG SY Video Manager . instance (). play Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¯¹åºĶçļĦ æĴŃæĶ¾ åĪĹè¡¨ TAG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= Ġre cyclerView . layout Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( layout Manager Ġis ĠLinearLayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Visible Item Ġ= Ġlayout Manager . findFirst Visible Item Position () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Visible Item Ġ= Ġlayout Manager . find Last Visible Item Position () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( G SY Video Manager . instance (). play Tag Ġ== ĠVideo Adapter . TAG Ġ&& Ġ( position Ġ< Ġfirst Visible Item Ġ|| Ġposition Ġ> Ġlast Visible Item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( G SY Video Manager . is Full State ( require Activity ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æ»ĳ åĩº åİ» äºĨ ä¸ĬéĿ¢ åĴĮ ä¸ĭéĿ¢ å°± æĺ¯åĲ¦ ï¼Į åĴĮ ä»Ĭ æĹ¥ å¤´ æĿ¡ ä¸Ģæł· ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG SY Video Manager . release All Videos () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Normal Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Api ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService . api Service V 2 . get Video () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Ok ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Normal Adapter ?. set New Instance ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ