瀏覽代碼

Fix forced secure screen disabled after disabling incognito (#5634)

Ivan Iskandar 3 年之前
父節點
當前提交
bcaa9674fe

+ 0 - 13
app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt

@@ -3,16 +3,10 @@ package eu.kanade.tachiyomi.ui.base.activity
 import android.content.Context
 import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
-import androidx.lifecycle.lifecycleScope
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.preference.PreferenceValues
 import eu.kanade.tachiyomi.data.preference.PreferencesHelper
-import eu.kanade.tachiyomi.data.preference.asImmediateFlow
 import eu.kanade.tachiyomi.util.system.LocaleHelper
-import eu.kanade.tachiyomi.util.view.setSecureScreen
-import kotlinx.coroutines.flow.launchIn
-import uy.kohesive.injekt.Injekt
-import uy.kohesive.injekt.api.get
 import uy.kohesive.injekt.injectLazy
 
 abstract class BaseThemedActivity : AppCompatActivity() {
@@ -25,13 +19,6 @@ abstract class BaseThemedActivity : AppCompatActivity() {
 
     override fun onCreate(savedInstanceState: Bundle?) {
         applyAppTheme(preferences)
-
-        Injekt.get<PreferencesHelper>().incognitoMode()
-            .asImmediateFlow {
-                window.setSecureScreen(it)
-            }
-            .launchIn(lifecycleScope)
-
         super.onCreate(savedInstanceState)
     }
 

+ 7 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt

@@ -6,6 +6,7 @@ import androidx.lifecycle.lifecycleScope
 import eu.kanade.tachiyomi.data.preference.PreferencesHelper
 import eu.kanade.tachiyomi.util.system.AuthenticatorUtil
 import eu.kanade.tachiyomi.util.view.setSecureScreen
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import uy.kohesive.injekt.injectLazy
@@ -16,8 +17,12 @@ class SecureActivityDelegate(private val activity: FragmentActivity) {
     private val preferences: PreferencesHelper by injectLazy()
 
     fun onCreate() {
-        preferences.secureScreen().asFlow()
-            .onEach { activity.window.setSecureScreen(it || preferences.incognitoMode().get()) }
+        val secureScreenFlow = preferences.secureScreen().asFlow()
+        val incognitoModeFlow = preferences.incognitoMode().asFlow()
+        secureScreenFlow.combine(incognitoModeFlow) { secureScreen, incognitoMode ->
+            secureScreen || incognitoMode
+        }
+            .onEach { activity.window.setSecureScreen(it) }
             .launchIn(activity.lifecycleScope)
     }