package Ġcom . ral f . bottom sheet . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . bottom sheet . Custom Bottom Sheet Behavior Ċ Ċ class ĠBottom Sheet RecyclerView Ġ: ĠRecyclerView , ĠCustom Bottom Sheet Behavior . Scroll Down Interceptor Ġ{ ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠ Ġdef Style Attr ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġm Helper : ĠRecyclerView Position Helper Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠRecyclerView Position Helper ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Scroll Down (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( child Count Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Child Position Ġ= Ġm Helper . findFirst Visible Item Position () ĊĠĠĠĠĠĠĠ Ġif Ġ( firstChild Position Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġget Child At ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġin sets Ġ= ĠRect ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġget Decorated Bounds With Margins ( child , Ġin sets ) ĊĠĠĠĠĠĠĠ Ġreturn Ġin sets . top Ġ>= Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ }