package Ġapp us . software . github users . presentation . common . recycler Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġapp us . software . github users . R Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġb og dan . mart yn ov Ġon Ġ 2 0 1 9 - 0 4 - 2 5 Ġ 1 1 : 4 4 . Ġtop - github - contributors - android Ċ Ġ*/ Ċ Ċ class ĠList Config Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġm Adapter : ĠRecyclerView . Adapter < Binding Holder < ViewData Binding >>, ĊĠĠĠ Ġprivate Ġval Ġm LayoutManager Provider : ĠLayout Manager Provider ?, ĊĠĠĠ Ġprivate Ġval Ġm Item Animator : ĠRecyclerView . Item Animator ?, ĊĠĠĠ Ġitem Decor ations : ĠList < RecyclerView . Item Decoration > ?, ĊĠĠĠ Ġscroll Listeners : ĠList < RecyclerView . On Scroll Listener > ?, ĊĠĠĠ Ġprivate Ġval Ġm Item Touch Helper : ĠItem Touch Helper ?, ĊĠĠĠ Ġprivate Ġval Ġm Has Fixed Size : ĠBoolean , ĊĠĠĠ Ġprivate Ġval Ġlayout Position : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Item Decor ations : ĠList < RecyclerView . Item Decoration > ĊĠĠĠ Ġprivate Ġval Ġm Scroll Listeners : ĠList < RecyclerView . On Scroll Listener > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Item Decor ations Ġ= Ġitem Decor ations Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġm Scroll Listeners Ġ= Ġscroll Listeners Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApplies Ġdefined Ġconfiguration Ġfor ĠRecyclerView ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠĠĠĠ Ġthe Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġre cyclerView Ġthe Ġtarget Ġre cycler Ġview Ġfor Ġapplying Ġthe Ġconfiguration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġapply Config ( context : ĠContext , Ġre cyclerView : ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m LayoutManager Provider Ġ== Ġnull Ġ|| Ġm Adapter Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager : ĠRecyclerView . LayoutManager Ġ= Ġm LayoutManager Provider [ context ] ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġre cyclerView . set Has Fixed Size ( m Has Fixed Size ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġre cyclerView . scrollTo Position ( layout Position ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġre cyclerView . item Decoration Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . removeItem Decoration At ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Item Decor ations . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġm Item Decor ations ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( scroll Listener Ġin Ġm Scroll Listeners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . add On Scroll Listener ( scroll Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Item Animator Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . item Animator Ġ= Ġm Item Animator ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Item Touch Helper ?. attach To RecyclerView ( re cyclerView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilder Ġfor Ġsetting ĠList Config ĊĠĠĠĠ Ġ* ĠSample : ĊĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠ Ġ* Ġ` List Config Ġlist Config Ġ= Ġnew ĠList Config . Builder ( m Adapter ) ĊĠĠĠĠ Ġ* Ġ. setLayout Manager Provider ( new ĠSimple Grid LayoutManager Provider ( m Span Count , Ġget Span Size Lookup ())) ĊĠĠĠĠ Ġ* Ġ. addItem Decoration ( new ĠColor Divider Item Decoration ( color , Ġspacing , ĠSPACE _ LEFT | SPACE _ TOP , Ġfalse )) ĊĠĠĠĠ Ġ* Ġ. setDefault Divider Enabled ( true ) ĊĠĠĠĠ Ġ* Ġ. add On Scroll Listener ( new ĠOn Load More Scroll Listener ( m Callback )) ĊĠĠĠĠ Ġ* Ġ. setItem Animator ( getItem Animator ()) ĊĠĠĠĠ Ġ* Ġ. set Has Fixed Size ( true ) ĊĠĠĠĠ Ġ* Ġ. setItem Touch Helper ( getItem Touch Helper ()) ĊĠĠĠĠ Ġ* Ġ. build ( context ); ĊĠĠĠ Ġ` Ġ* ĊĠĠĠ Ġ</ pre > Ġ* ĊĠĠĠĠ Ġ* ĠIf ĠLinearLayoutManager Ġwill Ġbe Ġused Ġby Ġdefault ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder < T > ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġnew ĠBuilder Ġfor Ġconfig ĠRecyclerView Ġwith Ġthe Ġadapter ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġadapter Ġthe Ġadapter , Ġwhich Ġwill Ġbe Ġset Ġto Ġthe ĠRecyclerView ĊĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ( val Ġadapter : ĠRecyclerView . Adapter < Binding Holder < ViewData Binding >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm LayoutManager Provider : ĠLayout Manager Provider ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Item Animator : ĠRecyclerView . Item Animator ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Item Decor ations Providers : ĠMutable List < Item Decoration Provider > ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm On Scroll Listeners : ĠMutable List < RecyclerView . On Scroll Listener >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Item Touch Helper : ĠItem Touch Helper ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Has Fixed Size : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġhas Divider : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlayout Position : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Delegate Adapter : ĠList Delegate Adapter < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġadapter Ġas ĠList Delegate Adapter < T > ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Decor ations Providers Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet ĠLayout Ġmanager Ġprovider . ĠIf Ġnot Ġset Ġdefault Ġ[ Linear LayoutManager ] Ġwill Ġbe Ġapplied ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlayout Manager Provider Ġthe Ġlayout Ġmanager Ġprovider . ĠCan Ġbe Ġcustom Ġor Ġone Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġsimple : Ġ[ Simple Linear LayoutManager Provider ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset LayoutManager Provider ( layout Manager Provider : ĠLayout Manager Provider ): ĠBuilder < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Provider Ġ= Ġlayout Manager Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget LayoutManager Provider (): ĠLayout Manager Provider ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm LayoutManager Provider ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġ[ RecyclerView . Item Animator ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġitem Animator Ġthe Ġitem Ġanim ator ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Item Animator ( item Animator : ĠRecyclerView . Item Animator ): ĠBuilder < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Animator Ġ= Ġitem Animator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġ[ RecyclerView . Item Decoration ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġitem Decoration Ġthe Ġitem Ġdecoration . ĠCan Ġbe Ġset Ġany Ġcustom Ġitem Ġdecoration ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġadd Item Decoration ( item Decoration : ĠItem Decoration Provider ): ĠBuilder < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Decor ations Providers . add ( item Decoration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Divider Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġ[ RecyclerView . On Scroll Listener ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġon Scroll Listener Ġthe Ġscroll Ġlistener . ĠCan Ġbe Ġset Ġany Ġcustom Ġor Ġused Ġone Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġadd On Scroll Listener ( on Scroll Listener : ĠRecyclerView . On Scroll Listener ): ĠBuilder < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m On Scroll Listeners Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Scroll Listeners Ġ= ĠArrayList < RecyclerView . On Scroll Listener >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm On Scroll Listeners !!. add ( on Scroll Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġtrue Ġto Ġapply Ġdefault Ġdivider Ġwith Ġdefault Ġsize Ġof Ġ 4 dp . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġis Enabled Ġset Ġtrue Ġto Ġapply Ġdefault Ġdivider . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠsetDefault Divider Enabled ( isEnabled : ĠBoolean ): ĠBuilder < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Divider Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Decor ations Providers . add ( Simple Item Decoration Provider ( R . drawable . divider , Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġ[ Item Touch Helper ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġitem Touch Helper Ġthe ĠItem Touch Helper Ġto Ġapply Ġfor ĠRecyclerView ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Item Touch Helper ( item Touch Helper : ĠItem Touch Helper ): ĠBuilder < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Touch Helper Ġ= Ġitem Touch Helper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Layout Position ( position : ĠInt ): ĠBuilder < T >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . layout Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġnew Ġ[ List Config ] Ġwith Ġdefined Ġconfiguration ĊĠĠĠĠĠĠĠĠ Ġ* ĠIf ĠLayout Manager Provider Ġis Ġnot Ġset , Ġthe Ġ[ Simple Linear LayoutManager Provider ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġwill Ġbe Ġused . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġthe Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġnew ĠList Config ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild ( context : ĠContext ): ĠList Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m LayoutManager Provider Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Provider Ġ= ĠSimple Linear LayoutManager Provider () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Decor ations Ġ= ĠArrayList < RecyclerView . Item Decoration >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! m Item Decor ations Providers . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġm Item Decor ations Providers ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Decor ations . add ( item [ context ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠList Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Animator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Decor ations , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Scroll Listeners , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Item Touch Helper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Has Fixed Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġprovider Ġof ĠLayout Manager Ġfor ĠRecyclerView ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠLayout Manager Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( context : ĠContext ): ĠRecyclerView . LayoutManager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġprovider Ġof ĠLayout Manager Ġfor ĠRecyclerView ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠItem Decoration Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( context : ĠContext ): ĠRecyclerView . Item Decoration ĊĊĠĠĠĠĠĠĠ Ġinterface ĠDecor ation Rule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġis Need To Decor ate ( position : ĠInt ): ĠBoolean ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġprovider Ġof ĠLayout Manager Ġfor ĠRecyclerView ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠSimple Item Decoration Provider ( private Ġval Ġres Id : ĠInt , Ġprivate Ġval Ġwith Last Divider : ĠBoolean ) Ġ: ĊĠĠĠĠĠĠĠ ĠItem Decoration Provider Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ( context : ĠContext ): ĠRecyclerView . Item Decoration Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDiv ider Item Decoration ( Context Compat . get Drawable ( context , Ġres Id ) !! , Ġwith Last Divider ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġsimple ĠLayout Manager Ġprovider Ġfor Ġ[ Linear LayoutManager ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠSimple Linear LayoutManager Provider Ġ: ĠLayout Manager Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġorientation : ĠInt ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġreverse : ĠBoolean ĊĊĠĠĠĠĠĠĠ Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . orientation Ġ= ĠLinearLayoutManager . VERTICAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . reverse Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( orientation : ĠInt , Ġreverse : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . orientation Ġ= Ġorientation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . reverse Ġ= Ġreverse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ( context : ĠContext ): ĠRecyclerView . LayoutManager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLinearLayoutManager ( context , Ġorientation , Ġreverse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }