From 607f77d432bb1a2d048038cb65462cf6897ae4be Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Fri, 28 Apr 2023 11:09:42 +0300 Subject: [PATCH] android: more checks for colors in customized theme (#2343) * android: more checks for colors in customized theme * code style * refactor --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> --- .../java/chat/simplex/app/ui/theme/Theme.kt | 21 ++++++++++++------- .../app/views/usersettings/Appearance.kt | 4 ++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt index 1f1b4dcdeb..85b3a0dbdf 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt @@ -21,21 +21,26 @@ enum class DefaultTheme { SYSTEM, LIGHT, DARK, SIMPLEX; // Call it only with base theme, not SYSTEM - fun hasChangedAnyColor(colors: Colors): Boolean { + fun hasChangedAnyColor(colors: Colors, appColors: AppColors): Boolean { val palette = when (this) { SYSTEM -> return false LIGHT -> LightColorPalette DARK -> DarkColorPalette SIMPLEX -> SimplexColorPalette } - return with(palette) { - colors.primary != primary || - colors.primaryVariant != primaryVariant || - colors.secondary != secondary || - colors.secondaryVariant != secondaryVariant || - colors.background != background || - colors.surface != surface + val appPalette = when (this) { + SYSTEM -> return false + LIGHT -> LightColorPaletteApp + DARK -> DarkColorPaletteApp + SIMPLEX -> SimplexColorPaletteApp } + return colors.primary != palette.primary || + colors.primaryVariant != palette.primaryVariant || + colors.secondary != palette.secondary || + colors.secondaryVariant != palette.secondaryVariant || + colors.background != palette.background || + colors.surface != palette.surface || + appColors != appPalette } } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt index 1f04dcd4f4..4b5e65d710 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt @@ -229,14 +229,14 @@ fun CustomizeThemeView(editColor: (ThemeColor, Color) -> Unit) { } } val isInDarkTheme = isInDarkTheme() - if (currentTheme.base.hasChangedAnyColor(currentTheme.colors)) { + if (currentTheme.base.hasChangedAnyColor(currentTheme.colors, currentTheme.appColors)) { SectionItemView({ ThemeManager.resetAllThemeColors(darkForSystemTheme = isInDarkTheme) }) { Text(generalGetString(R.string.reset_color), color = colors.primary) } } SectionSpacer() SectionView { - if (currentTheme.base.hasChangedAnyColor(currentTheme.colors)) { + if (currentTheme.base.hasChangedAnyColor(currentTheme.colors, currentTheme.appColors)) { val context = LocalContext.current val theme = remember { mutableStateOf(null as String?) } val exportThemeLauncher = rememberSaveThemeLauncher(context, theme)