Subscribe reading mode and orientation type changes

This commit is contained in:
FooIbar authored and tarsin committed 2023-07-13 07:00:18 +08:00
1 parent 7438b17366
commit 46271fb0d2
3 files changed
+9 -6

No files matched your search

@@ -32,6 +32,7 @@ sealed class AndroidPreference<T>(
return read(preferences, key, defaultValue)
}
// Async, don't call get() immediately after this
override fun set(value: T) {
preferences.edit(action = write(key, value))
}
@@ -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(
@@ -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()