package Ġcom . pad c my an mar . firebase . kotlin . components . rv set Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . Linear Smooth Scroller Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Display Metrics Ċ Ċ class ĠSm ooth Scroll Grid LayoutManager Ġ: ĠGrid LayoutManager Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Linear Smooth Scroller : ĠLinear Smooth Scroller ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Linear Smooth Scroller ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġspan Count : ĠInt ) Ġ: Ġsuper ( context , Ġspan Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Linear Smooth Scroller ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġspan Count : ĠInt , Ġorientation : ĠInt , Ġreverse Layout : ĠBoolean ) Ġ: Ġsuper ( context , Ġspan Count , Ġorientation , Ġreverse Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Linear Smooth Scroller ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsmooth Scroll To Position ( re cyclerView : ĠRecyclerView , Ġstate : ĠRecyclerView . State ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// super . smooth Scroll To Position ( re cyclerView , Ġstate , Ġposition ); ĊĊĠĠĠĠĠĠĠ Ġm Linear Smooth Scroller !!. target Position Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġstart Smooth Scroll ( m Linear Smooth Scroller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Linear Smooth Scroller ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Linear Smooth Scroller Ġ= Ġobject Ġ: ĠLinear Smooth Scroller ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval ĠMIL LI SECONDS _ PER _ IN CH Ġ= Ġ 1 0 0 f ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcompute Scroll Vector For Position ( target Position : ĠInt ): ĠPoint F ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// return Ġsuper . compute Scroll Vector For Position ( target Position ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis @ Smooth Scroll Grid LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compute Scroll Vector For Position ( target Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcalculate Speed Per Pixel ( display Metrics : ĠDisplay Metrics ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// return Ġsuper . calculate Speed Per Pixel ( display Metrics ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMIL LI SECONDS _ PER _ IN CH Ġ/ Ġdisplay Metrics . density D pi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }