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

This commit is contained in:
Ivan Iskandar 2021-08-06 04:52:20 +07:00 committed by GitHub
parent 40aa3b7e18
commit bcaa9674fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

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