Double page reader for reversed mode
parent
d24754f2a0
commit
2d61209696
@ -0,0 +1,28 @@
|
||||
package org.koitharu.kotatsu.reader.ui.pager.doublereversed
|
||||
|
||||
import org.koitharu.kotatsu.reader.ui.ReaderState
|
||||
import org.koitharu.kotatsu.reader.ui.pager.ReaderPage
|
||||
import org.koitharu.kotatsu.reader.ui.pager.doublepage.DoubleReaderFragment
|
||||
|
||||
class ReversedDoubleReaderFragment : DoubleReaderFragment() {
|
||||
|
||||
override fun switchPageBy(delta: Int) {
|
||||
super.switchPageBy(-delta)
|
||||
}
|
||||
|
||||
override fun switchPageTo(position: Int, smooth: Boolean) {
|
||||
super.switchPageTo(reversed(position), smooth)
|
||||
}
|
||||
|
||||
override suspend fun onPagesChanged(pages: List<ReaderPage>, pendingState: ReaderState?) {
|
||||
super.onPagesChanged(pages.reversed(), pendingState)
|
||||
}
|
||||
|
||||
override fun notifyPageChanged(lowerPos: Int, upperPos: Int) {
|
||||
viewModel.onCurrentPageChanged(reversed(upperPos), reversed(lowerPos))
|
||||
}
|
||||
|
||||
private fun reversed(position: Int): Int {
|
||||
return ((readerAdapter?.itemCount ?: 0) - position - 1).coerceAtLeast(0)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue