package Ġapps . j iz zu . simp let odo . ui . recycler čĊč Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager č Ċ import Ġandroidx . recyclerview . widget . RecyclerView čĊč Ċ abstract Ġclass ĠRecyclerView Scroll Listener Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ čĊĠĠĠ Ġprivate Ġvar Ġsc rolled Distance Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġis Toolbar Shown Ġ= Ġtrue čĊčĊĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġfirst Visible Item Ġ= Ġ( re cyclerView . layout Manager Ġas ĠLinearLayoutManager ). findFirst Visible Item Position () čĊĠĠĠĠĠĠĠ Ġval Ġfirst Comp let ely Visible Item Ġ= Ġ( re cyclerView . layout Manager Ġas ĠLinearLayoutManager ). findFirst Comp let ely Visible Item Position () čĊčĊĠĠĠĠĠĠĠ Ġ// ĠChange Ġtoolbar 's Ġshadow Ġvisibility čĊĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ> Ġ 0 Ġ&& Ġ! is Shadow Shown ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Shadow Show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Shadow Shown Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dy Ġ< Ġ 0 Ġ&& Ġis Shadow Shown Ġ&& Ġfirst Comp let ely Visible Item Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Shadow Hide () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Shadow Shown Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// ĠChange Ġtoolbar Ġvisibility čĊĠĠĠĠĠĠĠ Ġif Ġ( first Visible Item Ġ== Ġ 0 Ġ&& Ġ! is Toolbar Shown ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Toolbar Show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Toolbar Shown Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( sc rolled Distance Ġ> ĠH IDE _ THRESHOLD Ġ&& Ġis Toolbar Shown ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Toolbar Hide () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Toolbar Shown Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rolled Distance Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( sc rolled Distance Ġ< Ġ- HIDE _ THRESHOLD Ġ&& Ġ! is Toolbar Shown Ġ&& Ġfirst Comp let ely Visible Item Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Toolbar Show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Toolbar Shown Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rolled Distance Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( is Toolbar Shown Ġ&& Ġdy Ġ> Ġ 0 Ġ|| Ġ! is Toolbar Shown Ġ&& Ġdy Ġ< Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rolled Distance Ġ+= Ġdy čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġabstract Ġfun Ġon Toolbar Show () čĊĠĠĠ Ġabstract Ġfun Ġon Toolbar Hide () čĊĠĠĠ Ġabstract Ġfun Ġon Shadow Show () čĊĠĠĠ Ġabstract Ġfun Ġon Shadow Hide () čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠH IDE _ THRESHOLD Ġ= Ġ 2 0 čĊĠĠĠĠĠĠĠ Ġvar Ġis Shadow Shown Ġ= Ġfalse čĊĠĠĠ Ġ} č Ċ } čĊ