package Ġcom . v ension . mvp . ui . fragments . headline Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ 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 . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġcn . jz vd .* Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base . Base ViewHolder Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . v ension . frame . V Frame Ċ import Ġcom . v ension . frame . utils .* Ċ import Ġcom . v ension . mvp . R Ċ import Ġcom . v ension . mvp . base . Base Fragment Ċ import Ġcom . v ension . mvp . beans . headline . Detail Close Event Ċ import Ġcom . v ension . mvp . beans . headline . News Bean Ċ import Ġcom . v ension . mvp . beans . headline . News Record Bean Ċ import Ġcom . v ension . mvp . mvp . headline . contract . New List Contract Ċ import Ġcom . v ension . mvp . mvp . headline . presenter . New List Presenter Ċ import Ġcom . v ension . mvp . ui . activity s . headline . New Video Detail Act icity Ċ import Ġcom . v ension . mvp . ui . activity s . headline . News Detail Activity Ċ import Ġcom . v ension . mvp . ui . adapters . headline . News ListAdapter Ċ import Ġcom . v ension . mvp . ui . adapters . headline . Video ListAdapter Ċ import Ġcom . v ension . mvp . ui . fragments . agent . Web Fragment Ċ import Ġcom . v ension . mvp . utils . Constants Ċ import Ġcom . v ension . mvp . utils . News Record Helper Ċ import Ġcom . v ension . mvp . utils . UI Utils Ċ import Ġkotlinx . android . synt hetic . main . fragment _ news _ list .* Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ================================================= ======= Ċ Ġ* Ġ ä½ľ Ġ Ġ èĢħ ï¼ļ V ension Ċ Ġ* Ġ æĹ¥ Ġ Ġ æľŁ ï¼ļ 2 0 1 8 / 4 / 1 9 Ġ 1 0 : 3 6 Ċ Ġ* Ġæı ı Ġ Ġ è¿° ï¼ļ å±ķç¤º æ¯ıä¸ª é¢ĳ éģĵ æĸ° éĹ» åĪĹè¡¨ çļĦ fragment Ċ Ġ* Ġ================================================= ======= Ċ Ġ*/ Ċ Ċ class ĠNews List Fragment Ġ: ĠBase Fragment () Ġ, ĠNew List Contract . View , ĠSw ipe Refresh Layout . On Refresh Listener , Base Quick Adapter . Request Load More Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Channel Code : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Video List : ĠBoolean Ġ= Ġfalse ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ æĺ¯ æİ¨èįĲ é¢ĳ éģĵ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġis Recommend Channel : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġm News List Ġ= ĠArrayList < News Bean >() ĊĠĠĠ Ġprivate Ġvar Ġm News Adapter : ĠBase Quick Adapter < News Bean , ĠBase ViewHolder >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġm Gson Ġ= ĠGson () ĊĊĠĠĠ Ġ// æĸ° éĹ» è®°å½ķ ĊĠĠĠ Ġprivate Ġvar Ġm News Record : ĠNews Record Bean ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġm Presenter Ġby Ġlazy Ġ{ ĠNew List Presenter () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow ToolBar (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Layout Res (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ news _ list ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View And Data ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init View And Data ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Presenter . attach View ( this ) ĊĠĠĠĠĠĠĠ Ġm Channel Code Ġ= Ġarguments ?. getString ( Constants . CHANNEL _ CODE ) ĊĠĠĠĠĠĠĠ Ġis Video List Ġ= Ġarguments ?. getBoolean ( Constants . IS _ VIDEO _ LIST , Ġfalse ) !! ĊĊĠĠĠĠĠĠĠ Ġval Ġchannel Codes Ġ= ĠV Frame . getResources (). getString Array ( R . array . channel _ code ) ĊĠĠĠĠĠĠĠ Ġis Recommend Channel Ġ= Ġm Channel Code Ġ== Ġchannel Codes [ 0 ] // æĺ¯åĲ¦ æĺ¯ æİ¨èįĲ é¢ĳ éģĵ ĊĊĠĠĠĠĠĠĠ Ġm Layout Status View Ġ= Ġnew _ Multiple Status View ĊĊĠĠĠĠĠĠĠ Ġnew _ refresh Layout . setColor Scheme Colors ( V Obsolete Util . getColor ( R . color . color _ new _ main )) ĊĠĠĠĠĠĠĠ Ġnew _ refresh Layout . setOn Refresh Listener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ _ RecyclerView ĊĠĠĠĠĠĠĠ Ġrefresh RecyclerView . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġrefresh RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context , Linear LayoutManager . VERTICAL , false ) ĊĠĠĠĠĠĠĠ Ġrefresh RecyclerView . item Animator Ġ= ĠDefault Item Animator () ĊĊĠĠĠĠĠĠĠ Ġinit List enter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit List enter () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Video List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ è§Ĩé¢ĳ åĪĹè¡¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter Ġ= ĠVideo ListAdapter ( m News List ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åħ¶ä»ĸ æĸ° éĹ» åĪĹè¡¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter Ġ= ĠNews ListAdapter ( m Channel Code , Ġm News List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh RecyclerView . adapter Ġ= Ġm News Adapter ĊĊĊĠĠĠĠĠĠĠ Ġm News Adapter ?. on ItemClickListener Ġ= ĠBase Quick Adapter . On ItemClickListener Ġ{ Ġadapter , Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġm News List [ position ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemId Ġ= Ġnews . item _ id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Sb Ġ= ĠStringBuffer (" http :// m . tout iao . com / i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Sb . append ( itemId ). append ("/ info /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġurl Sb . toString () // http :// m . tout iao . com / i 6 4 1 2 4 2 7 7 1 3 0 5 0 5 7 5 3 6 1 / info / ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent : ĠIntent ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news . has _ video ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( activity , ĠNew Video Detail Act icity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Log Util . e (" has _ video ==> Ġ" Ġ+ Ġnews . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" video _ url ", Ġnews . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( JZ Video Player Manager . getCurrent Jz vd () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvideo Player Ġ= ĠJ Z Video Player Manager . getCurrent Jz vd () Ġas ĠJ Z Video Player Standard ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¼łéĢĴ è¿Ľ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= ĠJ Z Media Manager . instance (). position In List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Log Util . e (" has _ video ==> Ġ$ progress ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" progress ", Ġprogress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĿŀ è§Ĩé¢ĳ æĸ° éĹ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news . article _ type Ġ=== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ article _ type ä¸º 1 ï¼Į åĪĻ æĺ¯ ä½¿çĶ¨ WebView Activity æīĵå¼Ģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" web _ title ", news . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" web _ url ", news . article _ url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Agent Activity ( Web Fragment :: class . java , m Bundle !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On ItemClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åħ¶ä»ĸ æĸ° éĹ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( activity , ĠNews Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. putExtra (" channel Code ", Ġm Channel Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. putExtra (" position ", Ġposition ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. putExtra (" detail Url ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. putExtra (" groupId ", Ġnews . group _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. putExtra (" itemId ", ĠitemId ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" channel Code ", m Channel Code ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. put Int (" position ", position ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" detail Url ", url ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" groupId ", news . group _ id ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" itemId ", itemId ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news . has _ video ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Toast Util . show Toast (" è§Ĩé¢ĳ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§Ĩé¢ĳ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( m Activity , ĠVideo Detail Activity :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( JZ Video Player Manager . getCurrent Jz vd () Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvideo Player Ġ= ĠJ Z Video Player Manager . getCurrent Jz vd () Ġas ĠJ Z Video Player Standard Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¼łéĢĴ è¿Ľ åº¦ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= ĠJ Z Media Manager . instance (). position In List Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ!= Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. put Int (" progress ", progress ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Agent Activity ( Video Detail Fragment :: class . java , m Bundle !! ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĿŀ è§Ĩé¢ĳ æĸ° éĹ» Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news . article _ type Ġ=== Ġ 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ article _ type ä¸º 1 ï¼Į åĪĻ æĺ¯ ä½¿çĶ¨ WebView Activity æīĵå¼Ģ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" web _ title ", news . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bundle ?. putString (" web _ url ", news . article _ url ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Agent Activity ( Web Fragment :: class . java , m Bundle !! ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åħ¶ä»ĸ æĸ° éĹ» Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Agent Activity ( Web Fragment :: class . java , m Bundle !! ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm News Adapter ?. set Enable Load More ( true ) ĊĠĠĠĠĠĠĠ Ġm News Adapter ?. setOn Load More Listener ( this , Ġrefresh RecyclerView ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Video List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh RecyclerView . add On Child Attach State ChangeListener ( object Ġ: ĠRecyclerView . On Child Attach State ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Child View Attached To Window ( view : ĠView ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Child View Detached From Window ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj z vd Ġ= Ġview . findViewById < JZ Video Player >( R . id . video _ player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jz vd Ġ!= Ġnull Ġ&& ĠJ Z Utils . dataSource Objects Contains Uri ( jz vd . dataSource Objects , ĠJ Z Media Manager . getCurrent DataSource ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Jz vd Ġ= ĠJ Z Video Player Manager . getCurrent Jz vd () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Jz vd Ġ!= Ġnull Ġ&& Ġcurrent Jz vd . current Screen Ġ!= ĠJ Z Video Player . SCREEN _ WINDOW _ FULL SCREEN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ Z Video Player . release All Videos () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġlazy Load Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// æŁ¥æī¾ è¯¥ é¢ĳ éģĵ çļĦ æľĢåĲİ ä¸Ģ ç»Ħ è®°å½ķ ĊĠĠĠĠĠĠĠ Ġm News Record Ġ= ĠNews Record Helper . getLast News Record ( m Channel Code ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m News Record Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æī¾ ä¸įåĪ° è®°å½ķ ï¼Į æĭī åıĸ ç½ĳç»ľ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News Record Ġ= ĠNews Record Bean () // åĪĽå»ºä¸Ģä¸ª æ²¡æľī æķ°æį®çļĦ å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . get News List ( m Channel Code !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æī¾åĪ° æľĢåĲİ ä¸Ģ ç»Ħ è®°å½ķ ï¼Į è½¬æį¢ æĪĲ æĸ° éĹ» éĽĨåĲĪ å¹¶ å±ķç¤º ĊĠĠĠĠĠĠĠ Ġval Ġnews List Ġ= ĠNews Record Helper . convertTo News List ( m News Record ?. json ) ĊĠĠĠĠĠĠĠ Ġm News List . addAll ( news List )// æ·»åĬł åĪ° éĽĨåĲĪ ä¸Ń ĊĠĠĠĠĠĠĠ Ġm News Adapter ?. notify DataSet Changed () // åĪ·æĸ° adapter ĊĊĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Content () // æĺ¾ç¤º åĨħå®¹ ĊĊĠĠĠĠĠĠĠ Ġ// åĪ¤æĸŃ æĹ¶éĹ´ æĺ¯åĲ¦ è¶ħè¿ĩ 1 0 åĪĨ éĴŁ ï¼Į å¦Ĥæŀľ æĺ¯ åĪĻ èĩªåĬ¨ åĪ·æĸ° ĊĠĠĠĠĠĠĠ Ġif Ġ( m News Record ?. time !!. minus ( System . currentTimeMillis ()) Ġ=== Ġ 1 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Network Util . is Network Available ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç½ĳç»ľ ä¸įåı¯ çĶ¨ å¼¹ åĩº æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtip _ view . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new _ refresh Layout . is Refresh ing ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Presenter . get News List ( m Channel Code !! ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonLoad More Requested () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠBase RecyclerView Adapter Helper çļĦ åĬłè½½ æĽ´å¤ļ ĊĠĠĠĠĠĠĠ Ġif Ġ( m News Record ?. page Ġ=== Ġ 0 Ġ|| Ġm News Record ?. page Ġ=== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ è®°å½ķ çļĦ é¡µ æķ° ä¸º 0 ( åį³ æĺ¯ åĪĽå»º çļĦ ç©º è®°å½ķ )ï¼Į æĪĸèĢħ é¡µ æķ° ä¸º 1 ( åį³ å·²ç»ı æĺ¯ ç¬¬ä¸Ģ æĿ¡ è®°å½ķ äºĨ ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter ?. load More End () // ç»ĵæĿŁ åĬłè½½ æĽ´å¤ļ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpre News Record Ġ= ĠNews Record Helper . get Pre News Record ( m Channel Code , Ġm News Record ?. page !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pre News Record Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter ?. load More End () // ç»ĵæĿŁ åĬłè½½ æĽ´å¤ļ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm News Record Ġ= Ġpre News Record ĊĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= ĠSystem . currentTimeMillis () ĊĊĠĠĠĠĠĠĠ Ġval Ġnews List Ġ= ĠNews Record Helper . convertTo News List ( m News Record ?. json ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Recommend Channel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ æİ¨èįĲ é¢ĳ éģĵ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnews List . remove At ( 0 )// ç§»éĻ¤ ç¬¬ä¸Ģä¸ª ï¼Į åĽłä¸º ç¬¬ä¸Ģä¸ª æĺ¯ ç½® é¡¶ æĸ° éĹ» ï¼Į éĩįå¤į ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠendTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġ// çĶ±äºİ æĺ¯ è¯»åıĸ æķ°æį®åºĵ ï¼Į å¦Ĥæŀľ èĢĹ æĹ¶ ä¸į è¶³ 1 ç§Ĵ ï¼Į åĪĻ 1 ç§Ĵ åĲİ æīį æĶ¶ èµ· åĬłè½½ æĽ´å¤ļ ĊĠĠĠĠĠĠĠ Ġif Ġ( endTime Ġ- ĠstartTime Ġ<= Ġ 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUI Utils . post Task Delay ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter ?. load More Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm News List . addAll ( news List )// æ·»åĬł åĪ° éĽĨåĲĪ ä¸ĭéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm News Adapter ?. notify DataSet Changed () // åĪ·æĸ° adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ( 1 0 0 0 Ġ- Ġ( endTime Ġ- ĠstartTime )). toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get News List Success ( new List : ĠArrayList < News Bean >, Ġtip Info : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠV Log Util . e (" on Get News List Success == >" Ġ+ Ġnew List . toString ()) ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ ç¬¬ ä¸Ģæ¬¡ èİ·åıĸ æķ°æį® ĊĠĠĠĠĠĠĠ Ġif Ġ( VE mpty Util . isEmpty ( m News List )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( VE mpty Util . isEmpty ( new List )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ ä¸įåĪ° æķ°æį® , æĺ¾ç¤º ç©º å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Content () // æĺ¾ç¤º åĨħå®¹ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( VE mpty Util . isEmpty ( new List )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å·²ç»ı èİ·åıĸ ä¸įåĪ° æĸ° éĹ» äºĨ ï¼Į å¤ĦçĲĨ åĩºçİ° èİ·åıĸ ä¸įåĪ° æĸ° éĹ» çļĦ æĥħåĨµ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV Toast Util . show Info ( V Obsolete Util . getString ( R . string . no _ news _ now )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( new List [ 0 ]. title )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĶ±äºİ æ± ½ è½¦ ãĢģ ä½ĵ èĤ² çŃī é¢ĳ éģĵ ç¬¬ä¸Ģ æĿ¡ å±ŀ äºİ å¯¼èĪª çļĦåĨħå®¹ ï¼Į æīĢä»¥ å¦Ĥæŀľ ç¬¬ä¸Ģ æĿ¡ æ²¡æľī æłĩé¢ĺ ï¼Į åĪĻ ç§»éĻ¤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . remove At ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdeal Repeat ( new List )// å¤ĦçĲĨ æĸ° éĹ» éĩįå¤į éĹ®é¢ĺ ĊĊĠĠĠĠĠĠĠ Ġm News List . addAll ( 0 , Ġnew List ) ĊĠĠĠĠĠĠĠ Ġm News Adapter ?. notify DataSet Changed () ĊĊĠĠĠĠĠĠĠ Ġtip _ view . show ( tip Info ) ĊĊĠĠĠĠĠĠĠ Ġ// ä¿ĿåŃĺ åĪ° æķ°æį®åºĵ ĊĠĠĠĠĠĠĠ ĠNews Record Helper . save ( m Channel Code , Ġm Gson . toJson ( new List )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¤ĦçĲĨ ç½® é¡¶ æĸ° éĹ» åĴĮ å¹¿åĳĬ éĩįå¤į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdeal Repeat ( new List : ĠMutable List < News Bean >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Recommend Channel Ġ&& Ġ! VE mpty Util . isEmpty ( m News List )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ æİ¨èįĲ é¢ĳ éģĵ å¹¶ä¸Ķ æķ°æį® åĪĹè¡¨ å·²ç»ı æľī æķ°æį® , å¤ĦçĲĨ ç½® é¡¶ æĸ° éĹ» æĪĸ å¹¿åĳĬ éĩįå¤į çļĦéĹ®é¢ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm News List . remove At ( 0 )// çĶ±äºİ ç¬¬ä¸Ģ æĿ¡ æĸ° éĹ» æĺ¯ éĩįå¤į çļĦ ï¼Į ç§»éĻ¤ åİŁ æľīçļĦ ç¬¬ä¸Ģ æĿ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĸ° éĹ» åĪĹè¡¨ éĢļå¸¸ ç¬¬ 4 ä¸ª æĺ¯ å¹¿åĳĬ , éĻ¤äºĨ ç¬¬ ä¸Ģæ¬¡ æľī å¹¿åĳĬ ï¼Į åĨį æ¬¡ èİ·åıĸ çļĦ éĥ½ ç§»éĻ¤ å¹¿åĳĬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new List . size Ġ>= Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfourth News Ġ= Ġnew List [ 3 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ åĪĹè¡¨ ç¬¬ 4 ä¸ª åĴĮ åİŁ æľī åĪĹè¡¨ ç¬¬ 4 ä¸ª æĸ° éĹ» éĥ½æĺ¯ å¹¿åĳĬ ï¼Į å¹¶ä¸Ķ id ä¸Ģèĩ´ ï¼Į ç§»éĻ¤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( four th News . tag Ġ== ĠConstants . ARTIC LE _ GEN RE _ AD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . remove ( four th News ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Error ( error Msg : ĠString , ĠerrorCode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtip _ view . show () // å¼¹ åĩº æıĲç¤º ĊĠĠĠĠĠĠĠ Ġif Ġ( VE mpty Util . isEmpty ( m News List )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ ä¸Ģ å¼Ģå§ĭ è¿Ľåħ¥ æ²¡æľī æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æĶ¶ èµ· åĪ·æĸ° ĊĠĠĠĠĠĠĠ Ġif Ġ( new _ refresh Layout . is Refresh ing ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Loading () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdismiss Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new _ refresh Layout . is Refresh ing ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Layout Status View ?. show Content () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¯¦æĥħ é¡µ åħ³éĹŃ åĲİ ä¼łéĢĴ è¿ĩ æĿ¥çļĦ äºĭä»¶ , æĽ´æĸ° è¯Ħè®º æķ° æĴŃæĶ¾ è¿Ľ åº¦ çŃī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Detail Close Event ( event : ĠDetail Close Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! event . getChannel Code (). equals ( m Channel Code )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ é¢ĳ éģĵ ä¸į ä¸Ģèĩ´ ï¼Į ä¸į çĶ¨ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġevent . getPosition () ĊĠĠĠĠĠĠĠ Ġval Ġcomment Count Ġ= Ġevent . get Comment Count () ĊĊĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġm News List [ position ] ĊĠĠĠĠĠĠĠ Ġnews . comment _ count Ġ= Ġcomment Count ĊĊĠĠĠĠĠĠĠ Ġif Ġ( news . video _ detail _ info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æľī è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġevent . get Progress () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnews . video _ detail _ info . progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// åĪ·æĸ° adapter ĊĠĠĠĠĠĠĠ Ġm News List [ position ] Ġ= Ġnews ĊĠĠĠĠĠĠĠ Ġm News Adapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġregister EventBus ( this @ News List Fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġunregister EventBus ( this @ News List Fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠĠ ĠJ Z Video Player . release All Videos () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( JZ Video Player . back Press ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . getActivity ()?. on Back Pressed () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Presenter . detach View () ĊĠĠĠ Ġ} ĊĊ Ċ }