Allow disabling secure screen when incognito mode is on

This commit is contained in:
arkon
2022-02-05 18:51:08 -05:00
parent 95b253db09
commit 299e52e877
7 changed files with 38 additions and 13 deletions

View File

@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.security
import android.content.Intent
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported
import eu.kanade.tachiyomi.util.view.setSecureScreen
@@ -19,8 +20,8 @@ class SecureActivityDelegate(private val activity: FragmentActivity) {
fun onCreate() {
val secureScreenFlow = preferences.secureScreen().asFlow()
val incognitoModeFlow = preferences.incognitoMode().asFlow()
secureScreenFlow.combine(incognitoModeFlow) { secureScreen, incognitoMode ->
secureScreen || incognitoMode
combine(secureScreenFlow, incognitoModeFlow) { secureScreen, incognitoMode ->
secureScreen == PreferenceValues.SecureScreenMode.ALWAYS || secureScreen == PreferenceValues.SecureScreenMode.INCOGNITO && incognitoMode
}
.onEach { activity.window.setSecureScreen(it) }
.launchIn(activity.lifecycleScope)

View File

@@ -5,11 +5,14 @@ import androidx.fragment.app.FragmentActivity
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.util.preference.bindTo
import eu.kanade.tachiyomi.util.preference.defaultValue
import eu.kanade.tachiyomi.util.preference.entriesRes
import eu.kanade.tachiyomi.util.preference.infoPreference
import eu.kanade.tachiyomi.util.preference.intListPreference
import eu.kanade.tachiyomi.util.preference.listPreference
import eu.kanade.tachiyomi.util.preference.requireAuthentication
import eu.kanade.tachiyomi.util.preference.summaryRes
import eu.kanade.tachiyomi.util.preference.switchPreference
import eu.kanade.tachiyomi.util.preference.titleRes
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil
@@ -80,16 +83,24 @@ class SettingsSecurityController : SettingsController() {
}
}
switchPreference {
bindTo(preferences.secureScreen())
titleRes = R.string.secure_screen
summaryRes = R.string.secure_screen_summary
}
switchPreference {
key = Keys.hideNotificationContent
titleRes = R.string.hide_notification_content
defaultValue = false
}
listPreference {
bindTo(preferences.secureScreen())
titleRes = R.string.secure_screen
summary = "%s"
entriesRes = arrayOf(
R.string.lock_always,
R.string.pref_incognito_mode,
R.string.lock_never,
)
entryValues = PreferenceValues.SecureScreenMode.values().map { it.name }.toTypedArray()
}
infoPreference(R.string.secure_screen_summary)
}
}