package Ġir . y add as ht . y add as ht . view . be haviour Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ Ċ class ĠSearch Bar Behaviour ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet Ċ ) Ġ: ĠCoord inator Layout . Behavior < View >( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġprevious Y : ĠFloat Ġ= Ġ 0 f ĊĊĠĠĠ Ġoverride Ġfun Ġlayout Dep ends On ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠCoord inator Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild : ĠView , Ġdependency : ĠView ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġdependency Ġis ĠApp Bar Layout ĊĊĠĠĠ Ġoverride Ġfun Ġon Dependent View Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠCoord inator Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency : ĠView ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Y Ġ= Ġdependency . y ĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġthe ĠApp Bar Layout Ġscroll s , Ġscroll Ġthe ĠRecyclerView Ġfor Ġthe Ġsame Ġdistance ĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠSw ipe Refresh Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getChild At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scroll By ( 0 , Ġ( previous Y Ġ- Ġcurrent Y ). toInt ()) ĊĊĠĠĠĠĠĠĠ Ġprevious Y Ġ= Ġcurrent Y ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }