From 4ece78fc20296b5539892d80de1cd0892f6db46e Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 5 Apr 2021 22:21:48 -0400 Subject: [PATCH] Fixed #693 Which because i'm a dum dum implentmented it different from upstream ...but this should also make swiping to the next chapter match the reader mode --- .../tachiyomi/ui/reader/ReaderActivity.kt | 41 +++++++++++++++---- .../tachiyomi/ui/reader/viewer/BaseViewer.kt | 10 +++++ .../ui/reader/viewer/pager/PagerViewer.kt | 10 +---- .../ui/reader/viewer/webtoon/WebtoonViewer.kt | 16 ++++---- app/src/main/res/xml/s_pen_actions.xml | 8 ++-- 5 files changed, 58 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index c451f92bc5..5ef5da0350 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -402,14 +402,41 @@ class ReaderActivity : } override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { - if (keyCode == KeyEvent.KEYCODE_N) { - presenter.loadNextChapter() - return true - } else if (keyCode == KeyEvent.KEYCODE_P) { - presenter.loadPreviousChapter() - return true + when (keyCode) { + KeyEvent.KEYCODE_N -> { + if (viewer is R2LPagerViewer) { + binding.readerNav.leftChapter.performClick() + } else { + binding.readerNav.rightChapter.performClick() + } + return true + } + KeyEvent.KEYCODE_P -> { + if (viewer !is R2LPagerViewer) { + binding.readerNav.leftChapter.performClick() + } else { + binding.readerNav.rightChapter.performClick() + } + return true + } + KeyEvent.KEYCODE_L -> { + binding.readerNav.leftChapter.performClick() + return true + } + KeyEvent.KEYCODE_R -> { + binding.readerNav.rightChapter.performClick() + return true + } + KeyEvent.KEYCODE_E -> { + viewer?.moveToNext() + return true + } + KeyEvent.KEYCODE_Q -> { + viewer?.moveToPrevious() + return true + } + else -> return super.onKeyUp(keyCode, event) } - return super.onKeyUp(keyCode, event) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/BaseViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/BaseViewer.kt index 223cb087f5..905e12dc7b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/BaseViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/BaseViewer.kt @@ -31,6 +31,16 @@ interface BaseViewer { */ fun moveToPage(page: ReaderPage) + /** + * Moves to the next page. + */ + fun moveToNext() + + /** + * Moves to the previous page. + */ + fun moveToPrevious() + /** * Called from the containing activity when a key [event] is received. It should return true * if the event was handled, false otherwise. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt index 07b60752a8..d2e027ff52 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt @@ -288,17 +288,11 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { } } - /** - * Moves to the next page. - */ - open fun moveToNext() { + override fun moveToNext() { moveRight() } - /** - * Moves to the previous page. - */ - open fun moveToPrevious() { + override fun moveToPrevious() { moveLeft() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt index c26738b7e1..e74af67517 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt @@ -109,8 +109,8 @@ class WebtoonViewer(val activity: ReaderActivity, val hasMargins: Boolean = fals val navigator = config.navigator when (navigator.getAction(pos)) { ViewerNavigation.NavigationRegion.MENU -> activity.toggleMenu() - ViewerNavigation.NavigationRegion.NEXT, ViewerNavigation.NavigationRegion.RIGHT -> scrollDown() - ViewerNavigation.NavigationRegion.PREV, ViewerNavigation.NavigationRegion.LEFT -> scrollUp() + ViewerNavigation.NavigationRegion.NEXT, ViewerNavigation.NavigationRegion.RIGHT -> moveToNext() + ViewerNavigation.NavigationRegion.PREV, ViewerNavigation.NavigationRegion.LEFT -> moveToPrevious() } } } @@ -252,14 +252,14 @@ class WebtoonViewer(val activity: ReaderActivity, val hasMargins: Boolean = fals /** * Scrolls up by [scrollDistance]. */ - private fun scrollUp() { + override fun moveToNext() { recycler.smoothScrollBy(0, -scrollDistance) } /** * Scrolls down by [scrollDistance]. */ - private fun scrollDown() { + override fun moveToPrevious() { recycler.smoothScrollBy(0, scrollDistance) } @@ -275,25 +275,25 @@ class WebtoonViewer(val activity: ReaderActivity, val hasMargins: Boolean = fals if (!config.volumeKeysEnabled || activity.menuVisible) { return false } else if (isUp) { - if (!config.volumeKeysInverted) scrollDown() else scrollUp() + if (!config.volumeKeysInverted) moveToNext() else moveToPrevious() } } KeyEvent.KEYCODE_VOLUME_UP -> { if (!config.volumeKeysEnabled || activity.menuVisible) { return false } else if (isUp) { - if (!config.volumeKeysInverted) scrollUp() else scrollDown() + if (!config.volumeKeysInverted) moveToPrevious() else moveToNext() } } KeyEvent.KEYCODE_MENU -> if (isUp) activity.toggleMenu() KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_DPAD_UP, - KeyEvent.KEYCODE_PAGE_UP -> if (isUp) scrollUp() + KeyEvent.KEYCODE_PAGE_UP -> if (isUp) moveToPrevious() KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_DOWN, - KeyEvent.KEYCODE_PAGE_DOWN -> if (isUp) scrollDown() + KeyEvent.KEYCODE_PAGE_DOWN -> if (isUp) moveToNext() else -> return false } return true diff --git a/app/src/main/res/xml/s_pen_actions.xml b/app/src/main/res/xml/s_pen_actions.xml index 27fe573620..5f7bf60267 100644 --- a/app/src/main/res/xml/s_pen_actions.xml +++ b/app/src/main/res/xml/s_pen_actions.xml @@ -8,7 +8,7 @@ priority="1" repeatable="true" repeatable_interval="short" - trigger_key="CTRL_LEFT+DPAD_RIGHT"> + trigger_key="E"> @@ -19,7 +19,7 @@ priority="2" repeatable="true" repeatable_interval="short" - trigger_key="CTRL_LEFT+DPAD_LEFT"> + trigger_key="Q"> @@ -41,7 +41,7 @@ priority="4" repeatable="true" repeatable_interval="short" - trigger_key="N"> + trigger_key="R"> @@ -52,7 +52,7 @@ priority="5" repeatable="true" repeatable_interval="short" - trigger_key="P"> + trigger_key="L">