package Ġcom . fore tree . sh library app . support . observer Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġcom . dy h dy h . widget . swiper ef resh . load more . Load More Footer Ċ import Ġcom . dy h dy h . widget . swiper ef resh . load more . Recycler Load More Helper Ċ import Ġcom . dy h dy h . widget . swiper ef resh . paging . Paging Wrapper Ċ import Ġcom . fore tree . sh library app . Constants Ċ import Ġcom . fore tree . sh library app . base . delegate . App Loading View Delegate Impl Ċ import Ġcom . fore tree . sh library app . base . delegate . App Paging Delegate Impl Ċ import Ġcom . fore tree . sh library app . base . delegate . Loading Delegate Ċ import Ġcom . fore tree . sh library app . ui . adapter . Abstract Recycler Adapter Ċ import Ġcom . fore tree . sh library app . widgets . refresh . Smart RecyclerView Ċ import Ġcom . sc wang . smart refresh . layout . api . Refresh Layout Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsil en Ġon Ġ 2 8 / 0 1 / 2 0 1 8 . Ċ Ġ*/ Ċ abstract Ġclass ĠApp Paging Observer < T > Ġ: ĠLoading Bar Observer < T > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Paging Helper : ĠP aging Wrapper ĊĠĠĠ Ġprivate Ġval Ġm Load More Helper : ĠRe cycler Load More Helper ĊĠĠĠ Ġprivate Ġval Ġm Refresh Layout : ĠRefresh Layout ĊĊĠĠĠ Ġprivate Ġval Ġm Loading Delegate : ĠLoading Delegate ? ĊĊĠĠĠ Ġprivate Ġval ĠSTART _ PAGE Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( parent : ĠView ?, Ġsmart RecyclerView : ĠSmart RecyclerView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( parent , Ġsmart RecyclerView , Ġnull ) ĊĊĠĠĠ Ġconstructor ( parent : ĠView ?, Ġsmart RecyclerView : ĠSmart RecyclerView , Ġloading Delegate : ĠLoading Delegate ?) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( parent , Ġsmart RecyclerView . get Refresh Layout (), Ġsmart RecyclerView . getView (). paging Helper , Ġsmart RecyclerView . getView (). load More Helper , Ġloading Delegate ) ĊĊĠĠĠ Ġconstructor ( parent : ĠView ?, Ġrefresh Layout : ĠRefresh Layout , Ġpaging Helper : ĠP aging Wrapper , Ġload More Helper : ĠRe cycler Load More Helper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( parent , Ġrefresh Layout , Ġpaging Helper , Ġload More Helper , Ġnull ) ĊĊĠĠĠ Ġconstructor ( parent : ĠView ?, Ġrefresh Layout : ĠRefresh Layout , Ġpaging Helper : ĠP aging Wrapper , Ġload More Helper : ĠRe cycler Load More Helper , Ġloading Delegate : ĠLoading Delegate ?) Ġ: Ġsuper ( parent !! ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Paging Helper Ġ= Ġpaging Helper ĊĠĠĠĠĠĠĠ Ġthis . m Refresh Layout Ġ= Ġrefresh Layout ĊĠĠĠĠĠĠĠ Ġthis . m Load More Helper Ġ= Ġload More Helper ĊĠĠĠĠĠĠĠ Ġthis . m Loading Delegate Ġ= Ġloading Delegate ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Load More Helper (): ĠRe cycler Load More Helper Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Load More Helper ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Refresh Layout (): ĠRefresh Layout Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Refresh Layout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Delegate (): ĠLoading Delegate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠApp Paging Delegate Impl ( getParent (), Ġm Refresh Layout , Ġm Load More Helper , Ġm Loading Delegate ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Empty View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . get Empty View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclick Error () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget PageSize (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠConstants . DEFAULT _ PAGE _ COUNT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġget Page Count ( response : ĠT ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . get PageSize () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Start Page (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSTART _ PAGE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next Response ( t : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġm Paging Helper . page ĊĠĠĠĠĠĠĠ Ġval Ġstart Page Ġ= Ġget Start Page () ĊĠĠĠĠĠĠĠ Ġval Ġresponse List Ġ= Ġget Response List ( t ) ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ ç¬¬ä¸Ģ é¡µ ĊĠĠĠĠĠĠĠ Ġif Ġ( page Ġ== Ġstart Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġm Load More Helper . inner Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Count Ġ= Ġadapter . item Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Count Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Empty Data View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad More ( t , Ġm Load More Helper . inner Adapter , Ġresponse List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ç¬¬ä¸Ģ é¡µ ä¸ªæķ° ä¸į è¶³ ä¸Ģ é¡µ çļĦ ä¸ªæķ° ĊĠĠĠĠĠĠĠ Ġif Ġ( page Ġ== Ġstart Page Ġ&& Ġresponse List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Load More Helper . load More Footer . state Ġ= ĠLoad More Footer . State . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( getPage Count ( t ) Ġ> Ġresponse List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Load More Helper . load More Footer . state Ġ= ĠLoad More Footer . State . THE _ END ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Load More Helper . load More Footer . state Ġ= ĠLoad More Footer . State . LOADING ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Paging Helper . page Down () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġabstract Ġfun Ġon Refresh ( response : ĠT ) ĊĊĠĠĠ Ġfun ĠonLoad More ( response : ĠT , Ġadapter : ĠRecyclerView . Adapter <* >, Ġresponse List : ĠList < Nothing >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Adapter Ġ= Ġm Load More Helper . inner Adapter ĊĠĠĠĠĠĠĠ Ġif Ġ( inner Adapter Ġis ĠAbstract Recycler Adapter < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinner Adapter . addItem All ( response List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġget Response List ( response : ĠT ): ĠList < Nothing > ĊĊĠĠĠ Ġopen Ġfun Ġshow Empty Data View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( get Delegate () Ġas ĠApp Loading View Delegate Impl ). show Empty Data Error () ĊĠĠĠ Ġ} Ċ Ċ }