From bc718bd343320d153914c553b84f158f6ffdc394 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Wed, 11 May 2022 12:31:20 +0200 Subject: [PATCH] Add easter egg color scheme --- preferences/src/main/proto/settings.proto | 1 + .../mm20/launcher2/ui/theme/LauncherTheme.kt | 15 ++++- .../ui/theme/colorscheme/EasterEgg.kt | 63 +++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/EasterEgg.kt diff --git a/preferences/src/main/proto/settings.proto b/preferences/src/main/proto/settings.proto index fc6f1442..8bce802b 100644 --- a/preferences/src/main/proto/settings.proto +++ b/preferences/src/main/proto/settings.proto @@ -17,6 +17,7 @@ message Settings { BlackAndWhite = 1; DebugMaterialYouCompat = 2; Custom = 3; + EasterEgg = 4; } ColorScheme color_scheme = 6; message CustomColors { diff --git a/ui/src/main/java/de/mm20/launcher2/ui/theme/LauncherTheme.kt b/ui/src/main/java/de/mm20/launcher2/ui/theme/LauncherTheme.kt index a2d004dc..10194225 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/theme/LauncherTheme.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/theme/LauncherTheme.kt @@ -9,6 +9,7 @@ import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.runtime.* import androidx.compose.ui.platform.LocalContext import de.mm20.launcher2.preferences.LauncherDataStore +import de.mm20.launcher2.preferences.Settings import de.mm20.launcher2.preferences.Settings.AppearanceSettings import de.mm20.launcher2.preferences.Settings.AppearanceSettings.Theme import de.mm20.launcher2.ui.theme.colorscheme.* @@ -24,7 +25,12 @@ fun LauncherTheme( val dataStore: LauncherDataStore by inject() - val colorSchemePreference by remember { dataStore.data.map { it.appearance.colorScheme } }.collectAsState( + val colorSchemePreference by remember { + dataStore.data.map { + if (it.easterEgg) Settings.AppearanceSettings.ColorScheme.EasterEgg + else it.appearance.colorScheme + } + }.collectAsState( AppearanceSettings.ColorScheme.Default ) @@ -57,6 +63,13 @@ fun colorSchemeAsState(colorScheme: AppearanceSettings.ColorScheme): MutableStat ) } } + AppearanceSettings.ColorScheme.EasterEgg -> { + return remember(darkTheme) { + mutableStateOf( + if (darkTheme) DarkEasterEggColorScheme else LightEasterEggColorScheme + ) + } + } AppearanceSettings.ColorScheme.Custom -> { val colors by remember(darkTheme) { dataStore.data.map { if (darkTheme) it.appearance.customColors.darkScheme else it.appearance.customColors.lightScheme } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/EasterEgg.kt b/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/EasterEgg.kt new file mode 100644 index 00000000..9d421356 --- /dev/null +++ b/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/EasterEgg.kt @@ -0,0 +1,63 @@ +package de.mm20.launcher2.ui.theme.colorscheme + +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.ui.graphics.Color + +val LightEasterEggColorScheme = lightColorScheme( + primary = Color(0xFFB30080), + onPrimary = Color(0xFFFFFFFF), + primaryContainer = Color(0xFFFFD8EB), + onPrimaryContainer = Color(0xFF3C002A), + inversePrimary = Color(0xFFFFAEDA), + secondary = Color(0xFF9E00C6), + onSecondary = Color(0xFFFFFFFF), + secondaryContainer = Color(0xFFFED6FF), + onSecondaryContainer = Color(0xFF340044), + tertiary = Color(0xFF8F4E00), + onTertiary = Color(0xFFFFFFFF), + tertiaryContainer = Color(0xFFFFDCBE), + onTertiaryContainer = Color(0xFF2E1500), + background = Color(0xFFFCFCF6), + onBackground = Color(0xFF1A1C19), + surface = Color(0xFFFCFCF6), + onSurface = Color(0xFF1A1C19), + surfaceVariant = Color(0xFFFFD6F5), + onSurfaceVariant = Color(0xFF6F2E67), + inverseSurface = Color(0xFF2F312D), + inverseOnSurface = Color(0xFFF1F1EB), + error = Color(0xFFB4271F), + onError = Color(0xFFFFFFFF), + errorContainer = Color(0xFFFFDAD3), + onErrorContainer = Color(0xFF410001), + outline = Color(0xFFA55E9A), +) + +val DarkEasterEggColorScheme = darkColorScheme( + primary = Color(0xFFFFAEDA), + onPrimary = Color(0xFF620044), + primaryContainer = Color(0xFF890061), + onPrimaryContainer = Color(0xFFFFD8EB), + inversePrimary = Color(0xFFB30080), + secondary = Color(0xFFF5ADFF), + onSecondary = Color(0xFF55006C), + secondaryContainer = Color(0xFF780097), + onSecondaryContainer = Color(0xFFFED6FF), + tertiary = Color(0xFFFFB773), + onTertiary = Color(0xFF4C2700), + tertiaryContainer = Color(0xFF6D3A00), + onTertiaryContainer = Color(0xFFFFDCBE), + background = Color(0xFF1A1C19), + onBackground = Color(0xFFE2E3DC), + surface = Color(0xFF1A1C19), + onSurface = Color(0xFFE2E3DC), + surfaceVariant = Color(0xFF6F2E67), + onSurfaceVariant = Color(0xFFFEACEE), + inverseSurface = Color(0xFFE2E3DC), + inverseOnSurface = Color(0xFF2F312D), + error = Color(0xFFFFB4A8), + onError = Color(0xFF690001), + errorContainer = Color(0xFF910809), + onErrorContainer = Color(0xFFFFB4A8), + outline = Color(0xFFC277B5), +) \ No newline at end of file