Scroll up/down when tapping top/bottom thirds in vertical reading modes (closes #3363)

This commit is contained in:
arkon 2020-06-22 22:36:33 -04:00
parent d44503cb19
commit 789421c7a0
3 changed files with 17 additions and 10 deletions

View file

@ -80,6 +80,14 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
}
})
pager.tapListener = { event ->
if (this is VerticalPagerViewer) {
val positionY = event.y
when {
positionY < pager.height * 0.33f && config.tappingEnabled -> moveLeft()
positionY > pager.height * 0.66f && config.tappingEnabled -> moveRight()
else -> activity.toggleMenu()
}
} else {
val positionX = event.x
when {
positionX < pager.width * 0.33f && config.tappingEnabled -> moveLeft()
@ -87,6 +95,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
else -> activity.toggleMenu()
}
}
}
pager.longTapListener = f@{
if (activity.menuVisible || config.longTapEnabled) {
val item = adapter.items.getOrNull(pager.currentItem)

View file

@ -24,6 +24,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
private set
var currentChapter: ReaderChapter? = null
/**
* Updates this adapter with the given [chapters]. It handles setting a few pages of the
* next/previous chapter to allow seamless transitions and inverting the pages if the viewer

View file

@ -93,13 +93,10 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr
}
})
recycler.tapListener = { event ->
val positionX = event.rawX
val positionY = event.rawY
when {
positionY < recycler.height * 0.25 && config.tappingEnabled -> scrollUp()
positionY > recycler.height * 0.75 && config.tappingEnabled -> scrollDown()
positionX < recycler.width * 0.33 && config.tappingEnabled -> scrollUp()
positionX > recycler.width * 0.66 && config.tappingEnabled -> scrollDown()
positionY < recycler.height * 0.33f && config.tappingEnabled -> scrollUp()
positionY > recycler.height * 0.66f && config.tappingEnabled -> scrollDown()
else -> activity.toggleMenu()
}
}