diff --git a/data/themes/src/main/java/de/mm20/launcher2/themes/DefaultThemes.kt b/data/themes/src/main/java/de/mm20/launcher2/themes/DefaultThemes.kt index 1df544a3..2d407cab 100644 --- a/data/themes/src/main/java/de/mm20/launcher2/themes/DefaultThemes.kt +++ b/data/themes/src/main/java/de/mm20/launcher2/themes/DefaultThemes.kt @@ -81,4 +81,84 @@ val DefaultDarkColorScheme = ColorScheme( background = ColorRef(CorePaletteColor.Neutral, 6), onBackground = ColorRef(CorePaletteColor.Neutral, 90), scrim = ColorRef(CorePaletteColor.Neutral, 0), +) + +val BlackAndWhiteThemeId = UUID(0L, 1L) + +val BlackAndWhiteLightColorScheme = ColorScheme( + primary = StaticColor(0xFF000000.toInt()), + onPrimary = StaticColor(0xFFFFFFFF.toInt()), + primaryContainer = StaticColor(0xFFFFFFFF.toInt()), + onPrimaryContainer = StaticColor(0xFF000000.toInt()), + inversePrimary = StaticColor(0xFFFFFFFF.toInt()), + secondary = StaticColor(0xFF000000.toInt()), + onSecondary = StaticColor(0xFFFFFFFF.toInt()), + secondaryContainer = StaticColor(0xFFFFFFFF.toInt()), + onSecondaryContainer = StaticColor(0xFF000000.toInt()), + tertiary = StaticColor(0xFF000000.toInt()), + onTertiary = StaticColor(0xFFFFFFFF.toInt()), + tertiaryContainer = StaticColor(0xFFFFFFFF.toInt()), + onTertiaryContainer = StaticColor(0xFF000000.toInt()), + background = StaticColor(0xFFFFFFFF.toInt()), + onBackground = StaticColor(0xFF000000.toInt()), + surface = StaticColor(0xFFFFFFFF.toInt()), + onSurface = StaticColor(0xFF000000.toInt()), + surfaceVariant = StaticColor(0xFFFFFFFF.toInt()), + onSurfaceVariant = StaticColor(0xFF000000.toInt()), + inverseSurface = StaticColor(0xFF000000.toInt()), + inverseOnSurface = StaticColor(0xFFFFFFFF.toInt()), + error = null, + onError = null, + errorContainer = null, + onErrorContainer = null, + outline = StaticColor(0xFF000000.toInt()), + surfaceTint = StaticColor(0xFFFFFFFF.toInt()), + outlineVariant = StaticColor(0xFF000000.toInt()), + scrim = StaticColor(0xFF000000.toInt()), + surfaceDim = StaticColor(0xFFFFFFFF.toInt()), + surfaceBright = StaticColor(0xFFFFFFFF.toInt()), + surfaceContainer = StaticColor(0xFFFFFFFF.toInt()), + surfaceContainerHigh = StaticColor(0xFFFFFFFF.toInt()), + surfaceContainerHighest = StaticColor(0xFFFFFFFF.toInt()), + surfaceContainerLow = StaticColor(0xFFFFFFFF.toInt()), + surfaceContainerLowest = StaticColor(0xFFFFFFFF.toInt()), +) + +val BlackAndWhiteDarkColorScheme = ColorScheme( + primary = StaticColor(0xFFFFFFFF.toInt()), + onPrimary = StaticColor(0xFF000000.toInt()), + primaryContainer = StaticColor(0xFF000000.toInt()), + onPrimaryContainer = StaticColor(0xFFFFFFFF.toInt()), + inversePrimary = StaticColor(0xFF000000.toInt()), + secondary = StaticColor(0xFFFFFFFF.toInt()), + onSecondary = StaticColor(0xFF000000.toInt()), + secondaryContainer = StaticColor(0xFF000000.toInt()), + onSecondaryContainer = StaticColor(0xFFFFFFFF.toInt()), + tertiary = StaticColor(0xFFFFFFFF.toInt()), + onTertiary = StaticColor(0xFF000000.toInt()), + tertiaryContainer = StaticColor(0xFF000000.toInt()), + onTertiaryContainer = StaticColor(0xFFFFFFFF.toInt()), + background = StaticColor(0xFF000000.toInt()), + onBackground = StaticColor(0xFFFFFFFF.toInt()), + surface = StaticColor(0xFF000000.toInt()), + onSurface = StaticColor(0xFFFFFFFF.toInt()), + surfaceVariant = StaticColor(0xFF000000.toInt()), + onSurfaceVariant = StaticColor(0xFFFFFFFF.toInt()), + inverseSurface = StaticColor(0xFFFFFFFF.toInt()), + inverseOnSurface = StaticColor(0xFF000000.toInt()), + error = null, + onError = null, + errorContainer = null, + onErrorContainer = null, + outline = StaticColor(0xFFFFFFFF.toInt()), + surfaceTint = StaticColor(0xFFFFFFFF.toInt()), + outlineVariant = StaticColor(0xFFFFFFFF.toInt()), + scrim = StaticColor(0xFFFFFFFF.toInt()), + surfaceDim = StaticColor(0xFF000000.toInt()), + surfaceBright = StaticColor(0xFF000000.toInt()), + surfaceContainer = StaticColor(0xFF000000.toInt()), + surfaceContainerHigh = StaticColor(0xFF000000.toInt()), + surfaceContainerHighest = StaticColor(0xFF000000.toInt()), + surfaceContainerLow = StaticColor(0xFF000000.toInt()), + surfaceContainerLowest = StaticColor(0xFF000000.toInt()), ) \ No newline at end of file diff --git a/data/themes/src/main/java/de/mm20/launcher2/themes/ThemeRepository.kt b/data/themes/src/main/java/de/mm20/launcher2/themes/ThemeRepository.kt index f1316f50..bb947631 100644 --- a/data/themes/src/main/java/de/mm20/launcher2/themes/ThemeRepository.kt +++ b/data/themes/src/main/java/de/mm20/launcher2/themes/ThemeRepository.kt @@ -20,15 +20,6 @@ class ThemeRepository( ) { private val scope = CoroutineScope(Dispatchers.IO + Job()) - private val customTheme = MutableStateFlow(Theme( - id = UUID.randomUUID(), - builtIn = false, - name = "Custom", - corePalette = EmptyCorePalette, - lightColorScheme = DefaultLightColorScheme, - darkColorScheme = DefaultDarkColorScheme, - )) - fun getThemes(): Flow> { return database.themeDao().getAll().map { getBuiltInThemes() + it.map { Theme(it) } @@ -37,6 +28,7 @@ class ThemeRepository( fun getTheme(id: UUID): Flow { if (id == DefaultThemeId) return flowOf(getDefaultTheme()) + if (id == BlackAndWhiteThemeId) return flowOf(getBlackAndWhiteTheme()) return database.themeDao().get(id).map { it?.let { Theme(it) } } } @@ -59,6 +51,7 @@ class ThemeRepository( private fun getBuiltInThemes(): List { return listOf( getDefaultTheme(), + getBlackAndWhiteTheme(), ) } @@ -73,4 +66,15 @@ class ThemeRepository( ) } + private fun getBlackAndWhiteTheme(): Theme { + return Theme( + id = BlackAndWhiteThemeId, + builtIn = true, + name = context.getString(R.string.preference_colors_bw), + corePalette = EmptyCorePalette, + lightColorScheme = BlackAndWhiteLightColorScheme, + darkColorScheme = BlackAndWhiteDarkColorScheme, + ) + } + } \ No newline at end of file