浏览代码

Refresh page on 32-bit color setting change

arkon 4 年之前
父节点
当前提交
dbd14c6dac
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt

+ 8 - 4
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt

@@ -5,6 +5,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 
@@ -22,6 +23,7 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
     var doubleTapAnimDuration = 500
     var volumeKeysEnabled = false
     var volumeKeysInverted = false
+    var trueColor = false
     var alwaysShowChapterTransition = true
 
     init {
@@ -40,6 +42,9 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
         preferences.readWithVolumeKeysInverted()
             .register({ volumeKeysInverted = it })
 
+        preferences.trueColor()
+            .register({ trueColor = it }, { imagePropertyChangedListener?.invoke() })
+
         preferences.alwaysShowChapterTransition()
             .register({ alwaysShowChapterTransition = it })
     }
@@ -49,10 +54,9 @@ abstract class ViewerConfig(preferences: PreferencesHelper) {
         onChanged: (T) -> Unit = {}
     ) {
         asFlow()
-            .onEach {
-                valueAssignment(it)
-                onChanged(it)
-            }
+            .onEach { valueAssignment(it) }
+            .distinctUntilChanged()
+            .onEach { onChanged(it) }
             .launchIn(scope)
     }
 }