package Ġcom . ab oolean . movies . utils . recyclerview Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ Ċ /** Ċ Ċ Created Ġby Ġosc ar Ġon Ġ 0 4 / 0 5 / 1 9 Ċ oper ez @ na - at . com . mx Ċ Ġ*/ Ċ /** Ċ Ġ* ĠPagination Ġclass Ġto Ġadd Ġmore Ġitems Ġto Ġthe Ġlist Ġwhen Ġreach Ġthe Ġlast Ġitem . Ċ Ġ*/ Ċ abstract Ġclass ĠPagination Scroll Listener Ċ /** Ċ Ġ* ĠSupport ing Ġonly ĠLinearLayoutManager Ġfor Ġnow . Ċ Ġ* Ċ Ġ* Ġ@ param Ġlayout Manager Ċ Ġ*/ Ċ ( var Ġlayout Manager : ĠSt agger ed Grid LayoutManager ) Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĊĠĠĠ Ġabstract Ġfun ĠisLoading (): ĠBoolean ĊĊĊĠĠĠ Ġvar Ġpast Visible Items : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġvisible ItemCount : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġtotal ItemCount : ĠInt Ġ= Ġ 0 ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠ Ġvisible ItemCount Ġ= Ġlayout Manager . child Count ĊĠĠĠĠĠĠĠ Ġtotal ItemCount Ġ= Ġlayout Manager . item Count ĊĠĠĠĠĠĠĠ Ġvar Ġfirst Visible Items : ĠInt Array ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfirst Visible Items Ġ= Ġlayout Manager . findFirst Visible Item Positions ( first Visible Items ) ĊĠĠĠĠĠĠĠ Ġif Ġ( first Visible Items Ġ!= Ġnull Ġ&& Ġfirst Visible Items . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpast Visible Items Ġ= Ġfirst Visible Items [ 0 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ(! isLoading ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( visible ItemCount Ġ+ Ġpast Visible Items Ġ>= Ġtotal ItemCount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload More Items () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġload More Items () Ċ }