From ebd0f74a3aa8067c023d2032717f332590f53ec0 Mon Sep 17 00:00:00 2001 From: Ushie Date: Tue, 16 Aug 2022 02:23:53 +0300 Subject: [PATCH] feat: dynamic color toggle --- app/src/main/kotlin/com/aliucord/manager/MainActivity.kt | 2 +- .../aliucord/manager/domain/manager/PreferencesManager.kt | 1 + .../com/aliucord/manager/ui/navigation/AppDestination.kt | 3 --- .../com/aliucord/manager/ui/screen/SettingsScreen.kt | 8 ++++++++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/aliucord/manager/MainActivity.kt b/app/src/main/kotlin/com/aliucord/manager/MainActivity.kt index 6e78ccb..0aeafa4 100644 --- a/app/src/main/kotlin/com/aliucord/manager/MainActivity.kt +++ b/app/src/main/kotlin/com/aliucord/manager/MainActivity.kt @@ -47,6 +47,7 @@ class MainActivity : ComponentActivity() { setContent { ManagerTheme( isDarkTheme = preferences.theme == Theme.DARK || preferences.theme == Theme.SYSTEM && isSystemInDarkTheme(), + isDynamicColor = preferences.dynamicColor ) { val navigator = rememberBackstackNavigator(AppDestination.Home) @@ -65,7 +66,6 @@ class MainActivity : ComponentActivity() { onClickAbout = { navigator.push(AppDestination.About) }, onClickSettings = { navigator.push(AppDestination.Settings) } ) - is AppDestination.Plugins -> PluginsScreen() is AppDestination.Install -> InstallerScreen( onClickBack = navigator::pop, ) diff --git a/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt b/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt index 1f3c492..deb32cb 100644 --- a/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt +++ b/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt @@ -7,6 +7,7 @@ import com.aliucord.manager.ui.theme.Theme class PreferencesManager(preferences: SharedPreferences) : BasePreferenceManager(preferences) { var theme by enumPreference("theme", Theme.SYSTEM) + var dynamicColor by booleanPreference("dynamic_color", true) var replaceBg by booleanPreference("replace_bg", true) var devMode by booleanPreference("dev_mode", false) var debuggable by booleanPreference("debuggable", false) diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/navigation/AppDestination.kt b/app/src/main/kotlin/com/aliucord/manager/ui/navigation/AppDestination.kt index 0abe16d..6f74b2b 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/navigation/AppDestination.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/navigation/AppDestination.kt @@ -17,9 +17,6 @@ sealed interface AppDestination : Destination { @Parcelize object Home : AppDestination - @Parcelize - object Plugins : AppDestination - @Parcelize object Install : AppDestination diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt index b44c30a..bca6839 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt @@ -72,6 +72,12 @@ fun SettingsScreen( } ) + SwitchSetting( + checked = preferences.dynamicColor, + title = { Text(stringResource(R.string.dynamic_color)) }, + onCheckedChange = { preferences.dynamicColor = it } + ) + Divider() OutlinedTextField( @@ -158,6 +164,7 @@ fun SwitchSetting( title: @Composable () -> Unit, description: @Composable (() -> Unit)? = null, onCheckedChange: (Boolean) -> Unit, + enabled: Boolean = true ) { ListItem( modifier = Modifier.clickable { onCheckedChange(!checked) }, @@ -166,6 +173,7 @@ fun SwitchSetting( supportingText = description, trailingContent = { Switch( + enabled = enabled, checked = checked, onCheckedChange = onCheckedChange ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 40fe31e..02ca692 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,4 +48,5 @@ Launch Uninstall Version + Dynamic color