Allow disabling secure screen when incognito mode is on
(cherry picked from commit 299e52e877d57cd912ac5dab2fe9c087c95ca350) # Conflicts: # app/build.gradle.kts # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt
This commit is contained in:
parent
75096e9808
commit
d1c40b8b85
@ -29,7 +29,7 @@ android {
|
|||||||
applicationId = "eu.kanade.tachiyomi.sy"
|
applicationId = "eu.kanade.tachiyomi.sy"
|
||||||
minSdk = AndroidConfig.minSdk
|
minSdk = AndroidConfig.minSdk
|
||||||
targetSdk = AndroidConfig.targetSdk
|
targetSdk = AndroidConfig.targetSdk
|
||||||
versionCode = 26
|
versionCode = 27
|
||||||
versionName = "1.8.1"
|
versionName = "1.8.1"
|
||||||
|
|
||||||
buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
|
buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
|
||||||
|
@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.data.backup.BackupCreatorJob
|
|||||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
||||||
import eu.kanade.tachiyomi.data.preference.MANGA_ONGOING
|
import eu.kanade.tachiyomi.data.preference.MANGA_ONGOING
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
||||||
@ -247,6 +248,12 @@ object Migrations {
|
|||||||
preferences.libraryUpdateMangaRestriction() -= MANGA_ONGOING
|
preferences.libraryUpdateMangaRestriction() -= MANGA_ONGOING
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (oldVersion < 75) {
|
||||||
|
val oldSecureScreen = prefs.getBoolean("secure_screen", false)
|
||||||
|
if (oldSecureScreen) {
|
||||||
|
preferences.secureScreen().set(PreferenceValues.SecureScreenMode.ALWAYS)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,12 @@ object PreferenceValues {
|
|||||||
SHIZUKU,
|
SHIZUKU,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class SecureScreenMode {
|
||||||
|
ALWAYS,
|
||||||
|
INCOGNITO,
|
||||||
|
NEVER,
|
||||||
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
enum class GroupLibraryMode {
|
enum class GroupLibraryMode {
|
||||||
GLOBAL,
|
GLOBAL,
|
||||||
|
@ -60,7 +60,7 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun lastAppUnlock() = flowPrefs.getLong("last_app_unlock", 0)
|
fun lastAppUnlock() = flowPrefs.getLong("last_app_unlock", 0)
|
||||||
|
|
||||||
fun secureScreen() = flowPrefs.getBoolean("secure_screen", false)
|
fun secureScreen() = flowPrefs.getEnum("secure_screen_v2", Values.SecureScreenMode.INCOGNITO)
|
||||||
|
|
||||||
fun hideNotificationContent() = prefs.getBoolean(Keys.hideNotificationContent, false)
|
fun hideNotificationContent() = prefs.getBoolean(Keys.hideNotificationContent, false)
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.security
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.ui.category.biometric.TimeRange
|
import eu.kanade.tachiyomi.ui.category.biometric.TimeRange
|
||||||
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported
|
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported
|
||||||
@ -23,8 +24,8 @@ class SecureActivityDelegate(private val activity: FragmentActivity) {
|
|||||||
fun onCreate() {
|
fun onCreate() {
|
||||||
val secureScreenFlow = preferences.secureScreen().asFlow()
|
val secureScreenFlow = preferences.secureScreen().asFlow()
|
||||||
val incognitoModeFlow = preferences.incognitoMode().asFlow()
|
val incognitoModeFlow = preferences.incognitoMode().asFlow()
|
||||||
secureScreenFlow.combine(incognitoModeFlow) { secureScreen, incognitoMode ->
|
combine(secureScreenFlow, incognitoModeFlow) { secureScreen, incognitoMode ->
|
||||||
secureScreen || incognitoMode
|
secureScreen == PreferenceValues.SecureScreenMode.ALWAYS || secureScreen == PreferenceValues.SecureScreenMode.INCOGNITO && incognitoMode
|
||||||
}
|
}
|
||||||
.onEach { activity.window.setSecureScreen(it) }
|
.onEach { activity.window.setSecureScreen(it) }
|
||||||
.launchIn(activity.lifecycleScope)
|
.launchIn(activity.lifecycleScope)
|
||||||
|
@ -8,6 +8,7 @@ import androidx.preference.Preference
|
|||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import eu.kanade.tachiyomi.R
|
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.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||||
@ -15,7 +16,10 @@ import eu.kanade.tachiyomi.ui.category.biometric.BiometricTimesController
|
|||||||
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
|
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
|
||||||
import eu.kanade.tachiyomi.util.preference.bindTo
|
import eu.kanade.tachiyomi.util.preference.bindTo
|
||||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
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.intListPreference
|
||||||
|
import eu.kanade.tachiyomi.util.preference.listPreference
|
||||||
import eu.kanade.tachiyomi.util.preference.onClick
|
import eu.kanade.tachiyomi.util.preference.onClick
|
||||||
import eu.kanade.tachiyomi.util.preference.preference
|
import eu.kanade.tachiyomi.util.preference.preference
|
||||||
import eu.kanade.tachiyomi.util.preference.requireAuthentication
|
import eu.kanade.tachiyomi.util.preference.requireAuthentication
|
||||||
@ -91,17 +95,24 @@ class SettingsSecurityController : SettingsController() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switchPreference {
|
|
||||||
bindTo(preferences.secureScreen())
|
|
||||||
titleRes = R.string.secure_screen
|
|
||||||
summaryRes = R.string.secure_screen_summary
|
|
||||||
}
|
|
||||||
|
|
||||||
switchPreference {
|
switchPreference {
|
||||||
key = Keys.hideNotificationContent
|
key = Keys.hideNotificationContent
|
||||||
titleRes = R.string.hide_notification_content
|
titleRes = R.string.hide_notification_content
|
||||||
defaultValue = false
|
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()
|
||||||
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
preference {
|
preference {
|
||||||
key = "pref_edit_lock_times"
|
key = "pref_edit_lock_times"
|
||||||
@ -128,6 +139,8 @@ class SettingsSecurityController : SettingsController() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
|
infoPreference(R.string.secure_screen_summary)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
|
@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.data.database.tables.TrackTable
|
|||||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
||||||
import eu.kanade.tachiyomi.data.preference.MANGA_ONGOING
|
import eu.kanade.tachiyomi.data.preference.MANGA_ONGOING
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
||||||
@ -370,6 +371,12 @@ object EXHMigrations {
|
|||||||
xLogE("Failed to delete old favorites database", e)
|
xLogE("Failed to delete old favorites database", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (oldVersion under 27) {
|
||||||
|
val oldSecureScreen = prefs.getBoolean("secure_screen", false)
|
||||||
|
if (oldSecureScreen) {
|
||||||
|
preferences.secureScreen().set(PreferenceValues.SecureScreenMode.ALWAYS)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if (oldVersion under 1) { } (1 is current release version)
|
// if (oldVersion under 1) { } (1 is current release version)
|
||||||
// do stuff here when releasing changed crap
|
// do stuff here when releasing changed crap
|
||||||
|
@ -185,9 +185,9 @@
|
|||||||
<item quantity="one">After 1 minute</item>
|
<item quantity="one">After 1 minute</item>
|
||||||
<item quantity="other">After %1$s minutes</item>
|
<item quantity="other">After %1$s minutes</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="secure_screen">Secure screen</string>
|
|
||||||
<string name="secure_screen_summary">Hide app contents when switching apps and block screenshots</string>
|
|
||||||
<string name="hide_notification_content">Hide notification content</string>
|
<string name="hide_notification_content">Hide notification content</string>
|
||||||
|
<string name="secure_screen">Secure screen</string>
|
||||||
|
<string name="secure_screen_summary">Secure screen hides app contents when switching apps and block screenshots</string>
|
||||||
|
|
||||||
<string name="pref_category_nsfw_content">NSFW (18+) sources</string>
|
<string name="pref_category_nsfw_content">NSFW (18+) sources</string>
|
||||||
<string name="pref_show_nsfw_source">Show in sources and extensions lists</string>
|
<string name="pref_show_nsfw_source">Show in sources and extensions lists</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user