package Ġcom . cx z . wan android . widget . behavior Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . core . view . View Compat Ċ import Ġcom . github . cl ans . fab . Floating Action Menu Ċ Ċ class ĠScroll Aware FAB 2 Behavior ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: ĊĠĠĠ ĠCoord inator Layout . Behavior < Floating Action Menu ? >( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġout Animator : ĠObject Animator ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġin Animator : ĠObject Animator ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġ åŀ Ĥ çĽ´ æ»ĳ åĬ¨ ĊĠĠĠ Ġoverride Ġfun ĠonStart Nested Scroll ( ĊĠĠĠĠĠĠĠ Ġcoord inator Layout : ĠCoord inator Layout , ĊĠĠĠĠĠĠĠ Ġchild : ĠFloating Action Menu , ĊĠĠĠĠĠĠĠ Ġdirect Target Child : ĠView , ĊĠĠĠĠĠĠĠ Ġtarget : ĠView , ĊĠĠĠĠĠĠĠ Ġnested Scroll Axes : ĠInt ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnested Scroll Axes Ġ== ĠView Compat . SCROLL _ AXIS _ VERTICAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Nested Pre Scroll ( ĊĠĠĠĠĠĠĠ Ġcoord inator Layout : ĠCoord inator Layout , ĊĠĠĠĠĠĠĠ Ġchild : ĠFloating Action Menu , ĊĠĠĠĠĠĠĠ Ġtarget : ĠView , ĊĠĠĠĠĠĠĠ Ġdx : ĠInt , ĊĠĠĠĠĠĠĠ Ġdy : ĠInt , ĊĠĠĠĠĠĠĠ Ġconsumed : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ> Ġ 0 ) Ġ{ Ġ// Ġä¸Ĭ æ»ĳ éļĲèĹı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( child . is Opened ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . close ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( out Animator Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Animator Ġ= ĠObject Animator . of Float ( child , Ġ" translation Y ", Ġ 0 f , Ġchild . height . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Animator ?. duration Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! out Animator !!. isRunning Ġ&& Ġchild . translation Y Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Animator !!. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dy Ġ< Ġ 0 ) Ġ{ Ġ// Ġä¸ĭ æ»ĳ æĺ¾ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( in Animator Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Animator Ġ= ĠObject Animator . of Float ( child , Ġ" translation Y ", Ġchild . height . toFloat (), Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Animator ?. duration Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! in Animator !!. isRunning Ġ&& Ġchild . translation Y Ġ>= Ġchild . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Animator !!. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ