From 46271fb0d2bef5c1f4d0ffb8c9a2342d24f09535 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 12 Jul 2023 23:46:09 +0800 Subject: [PATCH] Subscribe reading mode and orientation type changes --- .../tachiyomi/core/preference/AndroidPreference.kt | 1 + .../eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt | 12 ++++++++---- .../ui/reader/setting/ReaderReadingModeSettings.kt | 2 -- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/core/preference/AndroidPreference.kt b/app/src/main/java/eu/kanade/tachiyomi/core/preference/AndroidPreference.kt index 05d63ee18..f2c69f3a5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/core/preference/AndroidPreference.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/core/preference/AndroidPreference.kt @@ -32,6 +32,7 @@ sealed class AndroidPreference( return read(preferences, key, defaultValue) } + // Async, don't call get() immediately after this override fun set(value: T) { preferences.edit(action = write(key, value)) } 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 cb6eead7b..e4f52f414 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 @@ -731,9 +731,7 @@ class ReaderActivity : EhActivity() { selectedItemId = ReaderPreferences.defaultReadingMode().get(), ) { val newReadingMode = ReadingModeType.fromPreference(itemId) - ReaderPreferences.defaultReadingMode().set(newReadingMode.flagValue) - setGallery() } } } @@ -748,9 +746,7 @@ class ReaderActivity : EhActivity() { selectedItemId = ReaderPreferences.defaultOrientationType().get(), ) { val newOrientation = OrientationType.fromPreference(itemId) - ReaderPreferences.defaultOrientationType().set(newOrientation.flagValue) - setGallery() } } } @@ -908,6 +904,14 @@ class ReaderActivity : EhActivity() { * Initializes the reader subscriptions. */ init { + ReaderPreferences.defaultReadingMode().changes() + .onEach { setGallery() } + .launchIn(lifecycleScope) + + ReaderPreferences.defaultOrientationType().changes() + .onEach { setGallery() } + .launchIn(lifecycleScope) + ReaderPreferences.readerTheme().changes() .onEach { theme -> binding.readerContainer.setBackgroundResource( 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 fcc7784df..8d3ba46a1 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 @@ -48,7 +48,6 @@ class ReaderReadingModeSettings @JvmOverloads constructor( binding.viewer.onItemSelectedListener = { position -> val readingModeType = ReadingModeType.fromSpinner(position) ReaderPreferences.defaultReadingMode().set(readingModeType.flagValue) - (context as ReaderActivity).setGallery() val mangaViewer = ReaderPreferences.defaultReadingMode().get() if (mangaViewer == ReadingModeType.WEBTOON.flagValue || mangaViewer == ReadingModeType.CONTINUOUS_VERTICAL.flagValue) { @@ -65,7 +64,6 @@ class ReaderReadingModeSettings @JvmOverloads constructor( binding.rotationMode.onItemSelectedListener = { position -> val rotationType = OrientationType.fromSpinner(position) readerPreferences.defaultOrientationType().set(rotationType.flagValue) - (context as ReaderActivity).setGallery() } binding.rotationMode.setSelection( ReaderPreferences.defaultOrientationType().get()