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
This commit is contained in:
Ivan Iskandar 2021-07-31 01:51:49 +07:00 committed by Jobobby04
parent ac6e0acc5d
commit 306deb5e6a
2 changed files with 7 additions and 15 deletions

View File

@ -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)
}

View File

@ -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)
}