diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt index c8d5a2add..aacd7c054 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt @@ -45,6 +45,7 @@ import eu.kanade.presentation.more.settings.Preference import eu.kanade.presentation.more.settings.screen.debug.DebugInfoScreen import eu.kanade.presentation.util.collectAsState import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.core.security.SecurityPreferences import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.cache.PagePreviewCache import eu.kanade.tachiyomi.data.download.DownloadCache @@ -677,6 +678,7 @@ object SettingsAdvancedScreen : SearchableSettings { val sourcePreferences = remember { Injekt.get() } val unsortedPreferences = remember { Injekt.get() } val delegateSourcePreferences = remember { Injekt.get() } + val securityPreferences = remember { Injekt.get() } return Preference.PreferenceGroup( title = stringResource(R.string.developer_tools), preferenceItems = listOf( @@ -723,6 +725,53 @@ object SettingsAdvancedScreen : SearchableSettings { stringResource(R.string.app_name), ), ), + kotlin.run { + var enableEncryptDatabase by rememberSaveable { mutableStateOf(false) } + + if (enableEncryptDatabase) { + val dismiss = { enableEncryptDatabase = false } + AlertDialog( + onDismissRequest = dismiss, + title = { Text(text = stringResource(R.string.encrypt_database)) }, + text = { + Text( + text = remember { + HtmlCompat.fromHtml(context.getString(R.string.encrypt_database_message), HtmlCompat.FROM_HTML_MODE_COMPACT) + .toAnnotatedString() + }, + ) + }, + dismissButton = { + TextButton(onClick = dismiss) { + Text(text = stringResource(R.string.action_cancel)) + } + }, + confirmButton = { + TextButton( + onClick = { + dismiss() + securityPreferences.encryptDatabase().set(true) + }, + ) { + Text(text = stringResource(android.R.string.ok)) + } + }, + ) + } + Preference.PreferenceItem.SwitchPreference( + title = stringResource(R.string.encrypt_database), + pref = securityPreferences.encryptDatabase(), + subtitle = stringResource(R.string.encrypt_database_subtitle), + onValueChanged = { + if (it) { + enableEncryptDatabase = true + false + } else { + true + } + }, + ) + }, Preference.PreferenceItem.TextPreference( title = stringResource(R.string.open_debug_menu), subtitle = remember { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt index cfe76a930..beb6b85a0 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt @@ -126,11 +126,6 @@ object SettingsSecurityScreen : SearchableSettings { .associateWith { stringResource(it.titleResId) }, ), // SY --> - Preference.PreferenceItem.SwitchPreference( - title = stringResource(R.string.encrypt_database), - pref = securityPreferences.encryptDatabase(), - subtitle = stringResource(R.string.encrypt_database_subtitle), - ), Preference.PreferenceItem.SwitchPreference( pref = securityPreferences.passwordProtectDownloads(), title = stringResource(R.string.password_protect_downloads), diff --git a/i18n/src/main/res/values/strings_sy.xml b/i18n/src/main/res/values/strings_sy.xml index f4aaca94c..a0219d3a1 100644 --- a/i18n/src/main/res/values/strings_sy.xml +++ b/i18n/src/main/res/values/strings_sy.xml @@ -221,7 +221,10 @@ Friday Saturday Encrypt database - Requires app restart to take effect \nClearing app data and loading a backup is highly recommended + Requires app restart to take effect + + ENABLING THIS WILL CREATE A NEW DATABASE. USE THESE STEPS TO KEEP YOUR DATA
1. SETTINGS -> BACKUP -> CREATE
2. SYSTEM SETTINGS -> CLEAR APP DATA
3. SYSTEM SETTINGS -> FORCE RESTART
4. SETTINGS -> BACKUP -> RESTORE]]> +
Set CBZ archive password Password protect downloads Encrypts CBZ archive downloads with the given password.\nWARNING: DATA INSIDE THE ARCHIVES WILL BE LOST FOREVER IF YOU FORGET THE PASSWORD