package Ġxyz . b boy lin . daily android . presentation . activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . Gravity Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . functions . Bi Function Ċ import Ġkotlinx . android . synt hetic . main . activity _ collect list .* Ċ import Ġxyz . b boy lin . daily android . R Ċ import Ġxyz . b boy lin . daily android . data . entity . Collect Item Ċ import Ġxyz . b boy lin . daily android . domain . inter ator . Collect List Inter ator Ċ import Ġxyz . b boy lin . daily android . helper . util . Log Util Ċ import Ġxyz . b boy lin . daily android . helper . util . Network Util Ċ import Ġxyz . b boy lin . daily android . presentation . adapter . Collection Adapter Ċ import Ġxyz . b boy lin . daily android . presentation . widget . Simple Item Decoration Ċ import Ġxyz . b boy lin . un ivers ial toast . Universal Toast Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġlin Ġon Ġ 2 0 1 8 / 2 / 2 1 . Ċ Ġ*/ Ċ class ĠCollect List Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ= ĠR . layout . activity _ collect list ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsetup Toolbar ( R . string . collection ) ĊĠĠĠĠĠĠĠ Ġmulti Status View . setOn Retry ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Network Util . network Connected ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUniversal Toast . makeText ( this , Ġ" è¯· æ£ĢæŁ¥ ç½ĳç»ľ è¿ŀæİ¥ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠUniversal Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Gravity ( Gravity . CENTER , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Warning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager . orientation Ġ= ĠLinearLayoutManager . VERTICAL ĊĠĠĠĠĠĠĠ Ġwith ( re cyclerView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Simple Item Decoration ( 8 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Network Util . network Connected ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show No Network () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠCollect List Inter ator ( 0 ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġresponse Ġ-> Ġmerged Observable ( response . data . page Count , Ġresponse . data . datas ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Ġ!= Ġnull Ġ&& Ġlist . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= ĠCollection Adapter ( ArrayList ( list )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show Content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( TAG , Ġ" load Ġdata Ġerror ", Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Status View . show Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmerged Observable ( page Count : ĠInt , Ġlist : ĠList < Collect Item >? ): ĠObservable < List < Collect Item > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġobservable Ġ= ĠObservable . just ( list ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. page Count Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . d ( TAG , Ġ" i :${ i }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobservable Ġ= ĠObservable . zip ( observable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠCollect List Inter ator ( i ). execute (). map Ġ{ Ġt Ġ-> Ġt . data . datas Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġobject Ġ: ĠBi Function < List < Collect Item > ?, ĠList < Collect Item > ?, ĠList < Collect Item > ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapply ( t 1 : ĠList < Collect Item >, Ġt 2 : ĠList < Collect Item >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠList < Collect Item > Ġ= Ġt 1 . plus ( t 2 . as Iterable ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġobservable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠCollect List Activity :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġfun Ġstart From ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠCollect List Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }