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 9a2b4d4610..f8641032b8 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 @@ -179,6 +179,7 @@ class PagerPageHolder( if (isReady) { landscapeZoom(forward) } else { + forward ?: return@apply setOnImageEventListener( object : SubsamplingScaleImageView.DefaultOnImageEventListener() { override fun onReady() { @@ -669,7 +670,12 @@ class PagerPageHolder( } override fun onReady() { setupZoom() - if (isVisibleOnScreen()) landscapeZoom(true) + if (viewer.heldForwardZoom?.first == page.index) { + landscapeZoom(viewer.heldForwardZoom?.second) + viewer.heldForwardZoom = null + } else if (isVisibleOnScreen()) { + landscapeZoom(true) + } onImageDecoded() } 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 de8c32860d..97af56b81a 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 @@ -72,6 +72,12 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { } } + /** + * Variable used to hold the forward pos for reader activity shared transitions + * Without this var landscapezoom wont work with activity transitions + * */ + var heldForwardZoom: Pair? = null + private var pagerListener = object : ViewPager.SimpleOnPageChangeListener() { override fun onPageSelected(position: Int) { onPageChange(position) @@ -176,7 +182,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { (currentPage as ChapterTransition).from == pageF.chapter currentPage is ChapterTransition.Next && pageF is ReaderPage -> (currentPage as ChapterTransition).to == pageF.chapter - else -> (pageF as? ReaderPage)?.index != 0 + else -> true } currentPage = pageF when (pageF) { @@ -215,8 +221,12 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { activity.onPageSelected(page, hasExtraPage) // Notify holder of page change - getPageHolder(page)?.onPageSelected(forward) - + val holder = getPageHolder(page) + if (holder == null && forward != null && heldForwardZoom == null) { + heldForwardZoom = page.index to forward + } else { + holder?.onPageSelected(forward) + } val offset = if (hasExtraPage) 1 else 0 val pages = page.chapter.pages ?: return if (hasExtraPage) {