From 60d0799d973317a5444e6f0b0297ec8cb3bb1a82 Mon Sep 17 00:00:00 2001 From: Roshan Varughese <40583749+Animeboynz@users.noreply.github.com> Date: Mon, 23 Sep 2024 22:39:55 +1200 Subject: [PATCH] Settings Grouping --- .../settings/screen/SettingsSecurityScreen.kt | 63 +++++++++++++------ .../moko-resources/base/strings.xml | 4 ++ 2 files changed, 49 insertions(+), 18 deletions(-) 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 349784272..d26c91efd 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 @@ -28,14 +28,26 @@ object SettingsSecurityScreen : SearchableSettings { @Composable override fun getPreferences(): List { - val context = LocalContext.current val securityPreferences = remember { Injekt.get() } - val authSupported = remember { context.isAuthenticationSupported() } - - val useAuthPref = securityPreferences.useAuthenticator() - val useAuth by useAuthPref.collectAsState() - return listOf( + getSecurityGroup(securityPreferences), + getFirebaseGroup(securityPreferences), + ) + } +} + +@Composable +private fun getSecurityGroup( + securityPreferences: SecurityPreferences +): Preference.PreferenceGroup { + val context = LocalContext.current + val authSupported = remember { context.isAuthenticationSupported() } + val useAuthPref = securityPreferences.useAuthenticator() + val useAuth by useAuthPref.collectAsState() + + return Preference.PreferenceGroup( + title = stringResource(MR.strings.pref_security), + preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( pref = useAuthPref, title = stringResource(MR.strings.lock_with_biometrics), @@ -65,16 +77,7 @@ object SettingsSecurityScreen : SearchableSettings { ) }, ), - Preference.PreferenceItem.SwitchPreference( - pref = securityPreferences.crashlytics(), - title = stringResource(MR.strings.onboarding_permission_crashlytics), - subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description), - ), - Preference.PreferenceItem.SwitchPreference( - pref = securityPreferences.analytics(), - title = stringResource(MR.strings.onboarding_permission_analytics), - subtitle = stringResource(MR.strings.onboarding_permission_analytics_description), - ), + Preference.PreferenceItem.SwitchPreference( pref = securityPreferences.hideNotificationContent(), title = stringResource(MR.strings.hide_notification_content), @@ -87,10 +90,34 @@ object SettingsSecurityScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.secure_screen_summary)), - ) - } + ), + ) } +@Composable +private fun getFirebaseGroup( + securityPreferences: SecurityPreferences +): Preference.PreferenceGroup { + return Preference.PreferenceGroup( + title = stringResource(MR.strings.pref_firebase), + preferenceItems = persistentListOf( + Preference.PreferenceItem.SwitchPreference( + pref = securityPreferences.crashlytics(), + title = stringResource(MR.strings.onboarding_permission_crashlytics), + subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description), + ), + Preference.PreferenceItem.SwitchPreference( + pref = securityPreferences.analytics(), + title = stringResource(MR.strings.onboarding_permission_analytics), + subtitle = stringResource(MR.strings.onboarding_permission_analytics_description), + ), + Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.firebase_summary)), + ), + ) +} + + + private val LockAfterValues = persistentListOf( 0, // Always 1, diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index ab45a4bd1..5e5dc0034 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -246,6 +246,9 @@ App language Security and privacy + Security + Analytics and Crash logs + Require unlock Lock when idle Always @@ -253,6 +256,7 @@ Hide notification content Secure screen Secure screen hides app contents when switching apps and block screenshots + Sending crash logs and analytics will allow us to identify and fix issues, improve performance, and make future updates more relevant to your needs NSFW (18+) sources Show in sources and extensions lists