package Ġcom . she hu an . wan android . ui . collection Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . she hu an . wan android . R Ċ import Ġcom . she hu an . wan android . adapter . Collection ListAdapter Ċ import Ġcom . she hu an . wan android . base . activity . Base M vp Activity Ċ import Ġcom . she hu an . wan android . base . net . exception . Response Exception Ċ import Ġcom . she hu an . wan android . bean . article . Article Bean Ċ import Ġcom . she hu an . wan android . ui . article . Article Activity Ċ import Ġcom . she hu an . wan android . utils . Toast Util Ċ import Ġcom . she hu an . wan android . widget . Divider Item Decoration Ċ import Ġcom . she hu an . wan android . widget . Wrap Linear LayoutManager Ċ import Ġkotlinx . android . synt hetic . main . activity _ my _ collection .* Ċ Ċ class ĠMy Collection Activity Ġ: ĠBase M vp Activity < My Collection Presenter Impl >(), ĠMy Collection Contract . View Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġpage Num : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcollection ListAdapter : ĠCollection ListAdapter ĊĠĠĠ Ġprivate Ġvar Ġcollect Position : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMy Collection Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Presenter (): ĠMy Collection Presenter Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMy Collection Presenter Impl ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Load () Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus View . show Loading View () ĊĠĠĠĠĠĠĠ Ġpresenter . get Collection List ( pageNum ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Layout Res ID (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ my _ collection ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Toolbar ( R . string . collect ) ĊĊĠĠĠĠĠĠĠ Ġcollection ListAdapter Ġ= ĠCollection ListAdapter ( mContext , Ġnull , Ġtrue ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Loading View ( R . layout . rv _ loading _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Load End View ( R . layout . rv _ load _ end _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Load Failed View ( R . layout . rv _ load _ failed _ layout ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ Ġ_, Ġdata , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArticle Activity . start ( mContext , Ġdata . title , Ġdata . link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Item Child ClickListener ( R . id . article Collect Iv ) Ġ{ Ġ_, Ġdata , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollect Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . cancel Collection ( data . id , Ġdata . origin Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnLoad More Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . get Collection List ( pageNum ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠWrap Linear LayoutManager ( mContext ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager . orientation Ġ= ĠRecyclerView . VERTICAL ĊĠĠĠĠĠĠĠ Ġcollection Rv . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġcollection Rv . addItem Decoration ( Divider Item Decoration ()) ĊĠĠĠĠĠĠĠ Ġcollection Rv . adapter Ġ= Ġcollection ListAdapter ĊĊĠĠĠĠĠĠĠ Ġinit Status View ( R . id . collection Rv ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Load () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Collection List Success ( data : ĠArticle Bean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( pageNum Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus View . show ContentView () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection ListAdapter . set New Data ( data . datas ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection ListAdapter . set Load More Data ( data . datas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpage Num ++ ĊĠĠĠĠĠĠĠ Ġif Ġ( pageNum Ġ== Ġdata . page Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection ListAdapter . load End () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Collection List Error ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( pageNum Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus View . show Error View () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection ListAdapter . load Failed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel Collection Success ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcollection ListAdapter . remove ( collect Position ) ĊĠĠĠĠĠĠĠ ĠToast Util . show ( mContext , ĠR . string . un collect _ success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel Collection Error ( e : ĠResponse Exception ) Ġ{ ĊĊĠĠĠ Ġ} Ċ } Ċ