package Ġcom . sun zn . banner . library Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Display Metrics Ċ Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear Smooth Scroller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ internal Ġclass ĠBanner LayoutManager Ġ: ĠLinearLayoutManager Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠMIL LI SECONDS _ PER _ IN CH Ġ= Ġ 1 0 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġorientation : ĠInt , Ġreverse Layout : ĠBoolean ) Ġ: Ġsuper ( context , Ġorientation , Ġreverse Layout ) Ġ{ ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġorientation : ĠInt , Ġreverse Layout : ĠBoolean , Ġin ch : ĠFloat ) Ġ: Ġsuper ( context , Ġorientation , Ġreverse Layout ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMIL LI SECONDS _ PER _ IN CH Ġ= Ġin ch ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsmooth Scroll To Position ( re cyclerView : ĠRecyclerView , Ġstate : ĠRecyclerView . State ?, Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġm Scroller Ġ= Ġobject Ġ: ĠLinear Smooth Scroller ( mContext !! ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcalculate Speed Per Pixel ( display Metrics : ĠDisplay Metrics ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMIL LI SECONDS _ PER _ IN CH Ġ/ Ġdisplay Metrics . density D pi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Scroller . target Position Ġ= Ġposition ĊĊĠĠĠĠĠĠĠ Ġstart Smooth Scroll ( m Scroller ) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ