package Ġby . den iot oki ari . sh ik im or ic lient . view Ċ Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ Ċ abstract Ġclass ĠEnd less Recycler On Scroll Listener ( private Ġval Ġlayout Manager : ĠRecyclerView . LayoutManager ) Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġfirst Visible Item : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġinternal Ġvar Ġvisible ItemCount : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġinternal Ġvar Ġtotal ItemCount : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġvisible Threshold Ġ= Ġ 5 Ġ// ĠThe Ġminimum Ġamount Ġof Ġitems Ġto Ġhave Ġbelow Ġyour Ġcurrent Ġscroll Ġposition Ġbefore Ġloading Ġmore . ĊĊĠĠĠ Ġprivate Ġvar Ġprevious Total Ġ= Ġ 0 Ġ// ĠThe Ġtotal Ġnumber Ġof Ġitems Ġin Ġthe Ġdataset Ġafter Ġthe Ġlast Ġload ĊĠĠĠ Ġprivate Ġvar Ġloading Ġ= Ġtrue Ġ// ĠTrue Ġif Ġwe Ġare Ġstill Ġwaiting Ġfor Ġthe Ġlast Ġset Ġof Ġdata Ġto Ġload . ĊĠĠĠ Ġprivate Ġvar Ġcurrent _ page Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView ?, Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠ Ġvisible ItemCount Ġ= Ġre cyclerView !!. child Count ĊĠĠĠĠĠĠĠ Ġtotal ItemCount Ġ= Ġlayout Manager . item Count ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( layout Manager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLinearLayoutManager Ġ-> Ġfirst Visible Item Ġ= Ġlayout Manager . findFirst Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( total ItemCount Ġ> Ġprevious Total ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Total Ġ= Ġtotal ItemCount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! loading Ġ&& Ġtotal ItemCount Ġ- Ġvisible ItemCount Ġ<= Ġfirst Visible Item Ġ+ Ġvisible Threshold ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ page ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad More ( current _ page ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun ĠonLoad More ( current _ page : ĠInt ) Ċ Ċ }