From 8d291b1bc355ad72d7e22c505f590134934a1551 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sat, 23 Oct 2021 23:53:30 -0400 Subject: [PATCH] Implement invert double pages --- .../kanade/tachiyomi/ui/reader/ReaderActivity.kt | 3 ++- .../reader/setting/ReaderReadingModeSettings.kt | 1 + .../ui/reader/viewer/pager/PagerConfig.kt | 2 ++ .../ui/reader/viewer/pager/PagerPageHolder.kt | 15 +++++---------- app/src/main/res/layout/reader_pager_settings.xml | 9 +++++++++ 5 files changed, 19 insertions(+), 11 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 116c63afe..7d039ba79 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 @@ -1256,7 +1256,8 @@ class ReaderActivity : BaseRxActivity() val pages = page.chapter.pages ?: return val currentPage = if (hasExtraPage) { - if (resources.isLTR) "${page.number}-${page.number + 1}" else "${page.number + 1}-${page.number}" + val invertDoublePage = (viewer as? PagerViewer)?.config?.invertDoublePages ?: false + if (resources.isLTR xor invertDoublePage) "${page.number}-${page.number + 1}" else "${page.number + 1}-${page.number}" } else { "${page.number}" } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt index 238306686..14199217a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt @@ -88,6 +88,7 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr // SY --> binding.pagerPrefsGroup.pageTransitionsPager.bindToPreference(preferences.pageTransitionsPager()) binding.pagerPrefsGroup.pageLayout.bindToPreference(preferences.pageLayout()) + binding.pagerPrefsGroup.invertDoublePages.bindToPreference(preferences.invertDoublePages()) // SY <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index 63e3eaaeb..1a8b09c98 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -137,6 +137,8 @@ class PagerConfig( } ) + preferences.invertDoublePages() + .register({ invertDoublePages = it && dualPageSplit == false }, { imagePropertyChangedListener?.invoke() }) // SY <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt index 282e0c000..7949ed7f8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt @@ -23,9 +23,6 @@ import eu.kanade.tachiyomi.util.system.ImageUtil import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.widget.ViewPagerAdapter -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job import kotlinx.coroutines.delay import logcat.LogPriority import rx.Observable @@ -104,12 +101,10 @@ class PagerPageHolder( var extraStatus: Int = 0 var progress: Int = 0 var extraProgress: Int = 0 - var scope: CoroutineScope? = null // SY <-- init { addView(progressIndicator) - scope = CoroutineScope(Job() + Dispatchers.Default) observeStatus() } @@ -393,7 +388,7 @@ class PagerPageHolder( logcat(LogPriority.ERROR, e) { "Cannot combine pages" } return imageBytes.inputStream() } - scope?.launchUI { progressIndicator.setProgress(96) } + viewer.scope.launchUI { progressIndicator.setProgress(96) } val height = imageBitmap.height val width = imageBitmap.width @@ -417,7 +412,7 @@ class PagerPageHolder( logcat(LogPriority.ERROR, e) { "Cannot combine pages" } return imageBytes.inputStream() } - scope?.launchUI { progressIndicator.setProgress(97) } + viewer.scope.launchUI { progressIndicator.setProgress(97) } val height2 = imageBitmap2.height val width2 = imageBitmap2.width @@ -429,12 +424,12 @@ class PagerPageHolder( splitDoublePages() return imageBytes.inputStream() } - val isLTR = (viewer !is R2LPagerViewer).xor(viewer.config.invertDoublePages) + val isLTR = (viewer !is R2LPagerViewer) xor viewer.config.invertDoublePages imageStream.close() imageStream2.close() return ImageUtil.mergeBitmaps(imageBitmap, imageBitmap2, isLTR, viewer.config.pageCanvasColor) { - scope?.launchUI { + viewer.scope.launchUI { if (it == 100) { progressIndicator.hide() } else { @@ -445,7 +440,7 @@ class PagerPageHolder( } private fun splitDoublePages() { - scope?.launchUI { + viewer.scope.launchUI { delay(100) viewer.splitDoublePages(page) if (extraPage?.fullPage == true || page.fullPage) { diff --git a/app/src/main/res/layout/reader_pager_settings.xml b/app/src/main/res/layout/reader_pager_settings.xml index b5655bc90..45241c600 100644 --- a/app/src/main/res/layout/reader_pager_settings.xml +++ b/app/src/main/res/layout/reader_pager_settings.xml @@ -88,6 +88,15 @@ android:textColor="?android:attr/textColorSecondary" android:text="@string/pref_page_transitions" /> + +