From a880f801fb21435f89b71e98eb46ecec38c005f0 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 17 Oct 2023 23:29:33 +0800 Subject: [PATCH] Skip `buildProvider` if the activity will restart --- .../kanade/tachiyomi/ui/reader/ReaderActivity.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 2f448fdcd..be29fa45f 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -190,6 +190,8 @@ class ReaderActivity : EhActivity() { } private fun buildProvider(replace: Boolean = false) { + if (setOrientation(ReaderPreferences.defaultOrientationType().get())) return + if (mGalleryProvider != null) { if (replace) mGalleryProvider!!.stop() else return } @@ -330,7 +332,6 @@ class ReaderActivity : EhActivity() { mGalleryProvider.let { if (it == null) { - finish() return } lifecycleScope.launchIO { @@ -361,6 +362,7 @@ class ReaderActivity : EhActivity() { updateViewerInset(ReaderPreferences.fullscreen().get()) binding.viewerContainer.removeAllViews() setOrientation(ReaderPreferences.defaultOrientationType().get()) + updateOrientationShortcut(ReaderPreferences.defaultOrientationType().get()) binding.viewerContainer.addView(viewer?.getView()) viewer?.setGalleryProvider(mGalleryProvider!!) moveToPageIndex(mCurrentIndex) @@ -848,13 +850,15 @@ class ReaderActivity : EhActivity() { /** * Forces the user preferred [orientation] on the activity. + * Returns true if a restart is required. */ - private fun setOrientation(orientation: Int) { + private fun setOrientation(orientation: Int): Boolean { val newOrientation = OrientationType.fromPreference(orientation) - if (newOrientation.flag != requestedOrientation) { + val restart = newOrientation.flag != requestedOrientation + if (restart) { requestedOrientation = newOrientation.flag } - updateOrientationShortcut(ReaderPreferences.defaultOrientationType().get()) + return restart } /** @@ -904,10 +908,12 @@ class ReaderActivity : EhActivity() { */ init { ReaderPreferences.defaultReadingMode().changes() + .drop(1) .onEach { setGallery() } .launchIn(lifecycleScope) ReaderPreferences.defaultOrientationType().changes() + .drop(1) .onEach { setGallery() } .launchIn(lifecycleScope)