Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
MoyuruAizawa committed Mar 3, 2019
1 parent a5c2840 commit 6c2c034
Showing 1 changed file with 10 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -408,31 +408,31 @@ class TimetableLayoutManager(
private fun recycleTop(recycler: Recycler) {
(anchor.leftColumn..anchor.rightColumn).forEach { columnNum ->
val column = columns[columnNum]
val from = periods[anchor.top[columnNum]].positionInColumn
val to = min(periods[anchor.bottom[columnNum]].positionInColumn + 1, column.size - 1)
val range = column.subList(from, to)
range.forEachIndexed { index, period ->
val top = periods[anchor.top[columnNum]]
val bottom = periods[anchor.bottom[columnNum]]
column.subList(top.positionInColumn, bottom.positionInColumn).forEach { period ->
val view = findViewByPosition(period.adapterPosition) ?: return
if (getDecoratedBottom(view) >= parentTop) return

removeAndRecycleView(view, recycler)
anchor.top.put(columnNum, range.getOrNull(index + 1)?.adapterPosition ?: return)
val belowPosition = column[period.positionInColumn + 1].adapterPosition
anchor.top.put(columnNum, belowPosition)
}
}
}

private fun recycleBottom(recycler: Recycler) {
(anchor.leftColumn..anchor.rightColumn).forEach { columnNum ->
val column = columns[columnNum]
val from = periods[anchor.top[columnNum]].positionInColumn
val to = min(periods[anchor.bottom[columnNum]].positionInColumn + 1, column.size - 1)
val range = column.subList(from, to).asReversed()
range.forEachIndexed { index, period ->
val top = periods[anchor.top[columnNum]]
val bottom = periods[anchor.bottom[columnNum]]
column.subList(top.positionInColumn, bottom.positionInColumn).asReversed().forEach { period ->
val view = findViewByPosition(period.adapterPosition) ?: return
if (getDecoratedTop(view) <= parentBottom) return

removeAndRecycleView(view, recycler)
anchor.bottom.put(columnNum, range.getOrNull(index + 1)?.adapterPosition ?: return)
val abovePosition = column[period.positionInColumn - 1].adapterPosition
anchor.bottom.put(columnNum, abovePosition)
}
}
}
Expand Down

0 comments on commit 6c2c034

Please sign in to comment.