Skip to content

Commit

Permalink
[ContentListing] - Refactor: inline safe assumptions about the decora…
Browse files Browse the repository at this point in the history
…tion code
  • Loading branch information
Cliabhach committed Oct 26, 2018
1 parent 2d7b0a3 commit 130b839
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,22 @@ import edu.artic.content.listing.R
*/
class AllExhibitionsItemDecoration(
context: Context,
private val spanCount: Int,
private val includeEdge: Boolean = true
private val spanCount: Int
) : RecyclerView.ItemDecoration() {
private val horizontalSpacing: Int = context.resources.getDimensionPixelSize(R.dimen.all_exhibitions_cell_spacing_horizontal)
private val verticalSpacing: Int = context.resources.getDimensionPixelSize(R.dimen.all_exhibitions_cell_spacing_vertical)

override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
val adjustedPos = parent.getChildAdapterPosition(view) - 1 // item position, minus 1 for the header
val column = (adjustedPos) % spanCount // item column
if (includeEdge) {
outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount // spacing - column * ((1f / spanCount) * spacing)
outRect.right = (column + 1) * horizontalSpacing / spanCount // (column + 1) * ((1f / spanCount) * spacing)

if (adjustedPos < spanCount) { // top edge
outRect.top = verticalSpacing
}
outRect.bottom = verticalSpacing // item bottom
} else {
outRect.left = column * horizontalSpacing / spanCount // column * ((1f / spanCount) * spacing)
outRect.right = horizontalSpacing - (column + 1) * horizontalSpacing / spanCount // spacing - (column + 1) * ((1f / spanCount) * spacing)
if (adjustedPos >= spanCount) {
outRect.top = verticalSpacing // item top
}
outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount // spacing - column * ((1f / spanCount) * spacing)
outRect.right = (column + 1) * horizontalSpacing / spanCount // (column + 1) * ((1f / spanCount) * spacing)

if (adjustedPos < spanCount) { // top edge
outRect.top = verticalSpacing
}
outRect.bottom = verticalSpacing // item bottom

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import edu.artic.content.listing.R
*/
class AllToursItemDecoration(
context: Context,
private val spanCount: Int,
private val includeEdge: Boolean = true
private val spanCount: Int
) : RecyclerView.ItemDecoration() {
private val horizontalSpacing: Int = context.resources.getDimensionPixelSize(R.dimen.all_tour_cell_spacing_horizontal)
private val verticalSpacing: Int = context.resources.getDimensionPixelSize(R.dimen.all_tour_cell_spacing_vertical)
Expand All @@ -25,21 +24,14 @@ class AllToursItemDecoration(
outRect.set(0, 0, 0, 0)
} else {
val column = (adjustedPos) % spanCount // item column
if (includeEdge) {
outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount // spacing - column * ((1f / spanCount) * spacing)
outRect.right = (column + 1) * horizontalSpacing / spanCount // (column + 1) * ((1f / spanCount) * spacing)

if (adjustedPos < spanCount) { // top edge
outRect.top = verticalSpacing
}
outRect.bottom = verticalSpacing // item bottom
} else {
outRect.left = column * horizontalSpacing / spanCount // column * ((1f / spanCount) * spacing)
outRect.right = horizontalSpacing - (column + 1) * horizontalSpacing / spanCount // spacing - (column + 1) * ((1f / spanCount) * spacing)
if (adjustedPos >= spanCount) {
outRect.top = verticalSpacing // item top
}
outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount // spacing - column * ((1f / spanCount) * spacing)
outRect.right = (column + 1) * horizontalSpacing / spanCount // (column + 1) * ((1f / spanCount) * spacing)

if (adjustedPos < spanCount) { // top edge
outRect.top = verticalSpacing
}
outRect.bottom = verticalSpacing // item bottom
}

}
Expand Down

0 comments on commit 130b839

Please sign in to comment.