package Ġcc . crypt op unk s . crypt on . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠScroll Helper ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġscroll Threshold : ĠInt Ġ= Ġcontext . resources . display Metrics . run Ġ{ ĊĠĠĠĠĠĠĠ Ġscaled Density Ġ* ĠSC ROLL _ THRESHOLD _ DP ĊĠĠĠ Ġ}. toInt () ĊĊĠĠĠ Ġfun Ġis Bottom Reached ( view : ĠRecyclerView ) Ġ= Ġview . run Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax Scroll Ġ= Ġcompute Vertical Scroll Range () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Scroll Ġ= Ġcompute Vertical Scroll Offset () Ġ+ Ġcompute Vertical Scroll Extent () ĊĠĠĠĠĠĠĠ Ġmax Scroll Ġ- Ġcurrent Scroll Ġ< Ġscroll Threshold ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġscroll To Top ( view : ĠRecyclerView ) Ġ= ĊĠĠĠĠĠĠĠ Ġview . smooth Scroll To Position ( 0 ) ĊĊĠĠĠ Ġfun Ġscroll To Bottom ( view : ĠRecyclerView , Ġsmooth : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġview . adapter !!. item Count - 1 ĊĠĠĠĠĠĠĠ Ġwhen Ġ( smooth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġview . smooth Scroll To Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġview . scrollTo Position ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSC ROLL _ THRESHOLD _ DP Ġ= Ġ 1 0 0 ĊĠĠĠ Ġ} Ċ } Ċ