From 306deb5e6a78e3ff0e2a0cbf077cc1ad8fdaad10 Mon Sep 17 00:00:00 2001 From: Ivan Iskandar Date: Sat, 31 Jul 2021 01:51:49 +0700 Subject: [PATCH] Fix forced secure screen disabled after disabling incognito (cherry picked from commit 245132a1d136d41b5c139c09c58711ce224b6494) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt --- .../ui/base/activity/BaseThemedActivity.kt | 13 ------------- .../tachiyomi/ui/security/SecureActivityDelegate.kt | 9 +++++++-- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt index 8e68bf15f..fab975403 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt +++ b/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().incognitoMode() - .asImmediateFlow { - window.setSecureScreen(it) - } - .launchIn(lifecycleScope) - super.onCreate(savedInstanceState) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt index db0775c8a..831c0634a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt @@ -9,6 +9,7 @@ import eu.kanade.tachiyomi.util.system.AuthenticatorUtil import eu.kanade.tachiyomi.util.view.setSecureScreen import exh.util.hours import exh.util.minutes +import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.injectLazy @@ -20,8 +21,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) }