/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠG i org io ĠAnt oni oli Ċ Ġ* Ċ Ġ* Ġ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 . fon de sa . recyclerview divider . offset Ċ Ċ import Ġandroidx . annotation . Px Ċ import Ġcom . fon de sa . recyclerview divider . Side Ċ import Ġcom . fon de sa . recyclerview divider . St agger ed Cell Ċ import Ġcom . fon de sa . recyclerview divider . St agger ed Grid Ċ import Ġcom . fon de sa . recyclerview divider . sides Adjacent To Cell Ċ Ċ /** Ċ Ġ* ĠProvides Ġthe Ġoffset Ġof Ġa Ġ[ St agger ed Cell ]' s Ġdivider . Ċ Ġ* Ċ Ġ* Ġ@ param Ġare Side Div iders Visible Ġtrue Ġif Ġthe Ġside Ġdiv iders Ġare Ġvisible . Ċ Ġ*/ Ċ internal Ġclass ĠSt agger ed Divider Offset Provider ( private Ġval Ġare Side Div iders Visible : ĠBoolean ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġdivider 's Ġoffset . ĊĠĠĠĠ Ġ* ĠUseful Ġto Ġbalance Ġthe Ġsize Ġof Ġthe Ġitems Ġin Ġa Ġgrid Ġwith Ġmultiple Ġcolumns / rows . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġgrid Ġthe Ġ[ St agger ed Grid ] Ġin Ġwhich Ġthe Ġdivider Ġis Ġshown . ĊĠĠĠĠ Ġ* Ġ@ param Ġcell Ġthe Ġ[ St agger ed Cell ] Ġof Ġwhich Ġthe Ġdivider Ġis Ġshown . ĊĠĠĠĠ Ġ* Ġ@ param Ġdivider Side Ġthe Ġside Ġof Ġthe Ġcell Ġon Ġwhich Ġthe Ġdivider Ġis Ġshown . ĊĠĠĠĠ Ġ* Ġ@ param Ġsize Ġthe Ġsize Ġof Ġthe Ġdivider . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġoffset Ġwhich Ġshould Ġbe Ġrendered Ġby Ġthe Ġgiven Ġdivider . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Px ĊĠĠĠ Ġfun Ġget Offset From Size ( grid : ĠSt agger ed Grid , Ġcell : ĠSt agger ed Cell , Ġdivider Side : ĠSide , Ġ@ Px Ġsize : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġdiv iders Ġadjacent Ġto Ġthe Ġgrid Ġshould Ġalways Ġhave Ġthe Ġsame Ġoffset . ĊĠĠĠĠĠĠĠ Ġval Ġsides Adjacent To Cell Ġ= Ġgrid . sides Adjacent To Cell ( cell ) ĊĠĠĠĠĠĠĠ Ġval Ġis Adjacent To Grid Ġ= Ġdivider Side Ġin Ġsides Adjacent To Cell ĊĠĠĠĠĠĠĠ Ġif Ġ( is Adjacent To Grid Ġ&& Ġare Side Div iders Visible ) Ġreturn Ġsize ĊĠĠĠĠĠĠĠ Ġif Ġ( is Adjacent To Grid ) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġgrid Orientation Ġ= Ġgrid . orientation ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġbal ancing Ġshould Ġbe Ġdone Ġonly Ġif Ġthe Ġdivider Ġhas Ġthe Ġsame Ġorientation Ġof Ġthe Ġgrid Ġsince Ġit 's Ġuseless ĊĠĠĠĠĠĠĠ Ġ// Ġto Ġbalance Ġa Ġdivider Ġwhen Ġits Ġcontainer Ġis Ġa Ġscrolling Ġview Ġlike Ġa ĠRecyclerView . ĊĠĠĠĠĠĠĠ Ġif Ġ( grid Orientation . is Vertical Ġ&& Ġdivider Side Ġ== ĠSide . TOP Ġ|| Ġgrid Orientation . is Horizontal Ġ&& Ġdivider Side Ġ== ĠSide . START ) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( grid Orientation . is Vertical Ġ&& Ġdivider Side Ġ== ĠSide . BOTTOM Ġ|| Ġgrid Orientation . is Horizontal Ġ&& Ġdivider Side Ġ== ĠSide . END ) Ġreturn Ġsize ĊĠĠĠĠĠĠĠ Ġval Ġspan Count Ġ= Ġgrid . span Count ĊĠĠĠĠĠĠĠ Ġval Ġspan Index Ġ= Ġcell . span Index ĊĠĠĠĠĠĠĠ Ġreturn Ġnormalized Offset From Size ( divider Side , Ġsize , Ġspan Count , Ġspan Index , Ġare Side Div iders Visible ) ĊĠĠĠ Ġ} Ċ } Ċ