mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-13 12:38:58 +01:00
Allow disabling secure screen when incognito mode is on
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user