/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġsky do ves Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . sky do ves . android ribbon Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . sky do ves . android ribbon . annotations . Dp Ċ Ċ /** ĠR ibbon RecyclerView Ġhelps Ġto Ġcreate Ġ[ RecyclerView ] Ġthat Ġhas Ġ[ R ibbon View ] Ġas Ġitems . Ġ*/ Ċ class ĠR ibbon RecyclerView Ġ: ĠRecyclerView , ĠIR ibbon List Ġ{ ĊĊĠ Ġ@ Dp Ġprivate Ġvar Ġspace : ĠFloat Ġ= Ġ 3 f ĊĠ Ġprivate Ġvar Ġorientation : ĠInt Ġ= ĠH ORIZONTAL ĊĊĠ Ġprivate Ġval Ġri bb on Adapter : ĠR ibbon Recycler Adapter Ġ= ĠR ibbon Recycler Adapter () ĊĊĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠ ĠonCreate () ĊĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġget Attrs ( attrs ) ĊĠĠĠ ĠonCreate () ĊĠ Ġ} ĊĊĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( ĊĠĠĠ Ġcontext , ĊĠĠĠ Ġattrs , ĊĠĠĠ Ġdef Style Attr ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġget Attrs ( attrs , Ġdef Style Attr ) ĊĠĠĠ ĠonCreate () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Attrs ( attribute Set : ĠAttributeSet ) Ġ{ ĊĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . R ibbon RecyclerView ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġset Type Array ( typed Array ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Attrs ( attribute Set : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtyped Array Ġ= ĊĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . R ibbon RecyclerView , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġset Type Array ( typed Array ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġset Type Array ( type Array : ĠTyped Array ) Ġ{ ĊĠĠĠ Ġspace Ġ= Ġtype Array . get Dimension ( R . style able . R ibbon RecyclerView _ ribbon _ recycler _ space , Ġspace ) ĊĠĠĠ Ġorientation Ġ= ĊĠĠĠĠĠ Ġtype Array . getInt ( R . style able . R ibbon RecyclerView _ ribbon _ recycler _ orientation , Ġorientation ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠonCreate () Ġ{ ĊĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , Ġorientation , Ġfalse ) ĊĠĠĠ Ġadd Item Decoration ( R ibbon Tag Item Decoration ( space . dp 2 px ( resources ), Ġorientation )) ĊĠĠĠ Ġadapter Ġ= Ġri bb on Adapter ĊĠ Ġ} ĊĊĠ Ġ/** Ġadd Ġa Ġri bb on Ġon Ġthe Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġadd R ibbon ( ribbon View : ĠR ibbon View ) Ġ= ĊĠĠĠ Ġri bb on Adapter . add R ibbon ( ribbon View ) ĊĊĠ Ġ/** Ġadd Ġa Ġri bb on Ġon Ġthe Ġadapter Ġby Ġposition . Ġ*/ ĊĠ Ġoverride Ġfun Ġadd R ibbon ( position : ĠInt , Ġri bb on View : ĠR ibbon View ) Ġ= ĊĠĠĠ Ġri bb on Adapter . add R ibbon ( position , Ġri bb on View ) ĊĊĠ Ġ/** Ġadd Ġri bb ons Ġon Ġthe Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġadd R ibbon List ( ribbon View List : ĠList < R ibbon View >) Ġ= ĊĠĠĠ Ġri bb on Adapter . add R ibbon List ( ribbon View List ) ĊĊĠ Ġ/** Ġget Ġa Ġri bb on Ġfrom Ġthe Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġget R ibbon View ( position : ĠInt ): ĠR ibbon View Ġ= ĊĠĠĠ Ġri bb on Adapter . getR ibbon View ( position ) ĊĊĠ Ġ/** Ġadd Ġri bb on Ġfrom Ġthe Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġget R ibbon Views (): ĠList < R ibbon View > Ġ= ĊĠĠĠ Ġri bb on Adapter . getR ibbon Views () ĊĊĠ Ġ/** Ġremove Ġa Ġri bb on Ġon Ġthe Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġremove R ibbon ( ribbon View : ĠR ibbon View ) Ġ= ĊĠĠĠ Ġri bb on Adapter . remove R ibbon ( ribbon View ) ĊĊĠ Ġ/** Ġremove Ġa Ġri bb on Ġon Ġthe Ġadapter Ġby Ġposition . Ġ*/ ĊĠ Ġoverride Ġfun Ġremove R ibbon ( position : ĠInt ) Ġ= ĊĠĠĠ Ġri bb on Adapter . remove R ibbon ( position ) ĊĊĠ Ġ/** Ġclear Ġadapter . Ġ*/ ĊĠ Ġoverride Ġfun Ġclear () Ġ= Ġri bb on Adapter . clear () Ċ } Ċ