diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java index b92918ac9..85bfb1e2b 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java @@ -134,17 +134,23 @@ public final class KeyboardTheme implements Comparable { case THEME_USER: final int accent = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_ACCENT_SUFFIX, false); final int keyBgColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_KEYS_SUFFIX, false); + final int functionalKeyBgColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX, false); + final int spaceBarBgColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_SUFFIX, false); final int keyTextColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_TEXT_SUFFIX, false); final int hintTextColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_HINT_TEXT_SUFFIX, false); + final int spaceBarTextColor = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, false); final int background = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_BACKGROUND_SUFFIX, false); - return new Colors(themeStyle, hasBorders, accent, background, keyBgColor, ColorUtilKt.brightenOrDarken(keyBgColor, true), keyBgColor, keyTextColor, hintTextColor); + return new Colors(themeStyle, hasBorders, accent, background, keyBgColor, functionalKeyBgColor, spaceBarBgColor, keyTextColor, hintTextColor, spaceBarTextColor); case THEME_USER_NIGHT: final int accent2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_ACCENT_SUFFIX, true); final int keyBgColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_KEYS_SUFFIX, true); + final int functionalKeyBgColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX, true); + final int spaceBarBgColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_SUFFIX, true); final int keyTextColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_TEXT_SUFFIX, true); final int hintTextColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_HINT_TEXT_SUFFIX, true); + final int spaceBarTextColor2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, true); final int background2 = Settings.readUserColor(prefs, context, Settings.PREF_COLOR_BACKGROUND_SUFFIX, true); - return new Colors(themeStyle, hasBorders, accent2, background2, keyBgColor2, ColorUtilKt.brightenOrDarken(keyBgColor2, true), keyBgColor2, keyTextColor2, hintTextColor2); + return new Colors(themeStyle, hasBorders, accent2, background2, keyBgColor2, functionalKeyBgColor2, spaceBarBgColor2, keyTextColor2, hintTextColor2, spaceBarTextColor2); case THEME_DARK: return new Colors( themeStyle, @@ -156,7 +162,8 @@ public final class KeyboardTheme implements Comparable { Color.parseColor("#2d393f"), Color.parseColor("#364248"), ContextCompat.getColor(context, R.color.key_text_color_lxx_dark), - ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark) + ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark), + ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark) ); case THEME_HOLO_WHITE: return new Colors( @@ -169,6 +176,7 @@ public final class KeyboardTheme implements Comparable { Color.parseColor("#444444"), // should be 222222, but the key drawable is already grey Color.parseColor("#FFFFFF"), Color.parseColor("#FFFFFF"), + Color.parseColor("#282828"), Color.parseColor("#282828") ); case THEME_DARKER: @@ -181,7 +189,8 @@ public final class KeyboardTheme implements Comparable { ContextCompat.getColor(context, R.color.key_background_functional_lxx_dark_border), ContextCompat.getColor(context, R.color.key_background_normal_lxx_dark_border), ContextCompat.getColor(context, R.color.key_text_color_lxx_dark), - ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark) + ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark), + ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark) ); case THEME_BLACK: return new Colors( @@ -193,7 +202,8 @@ public final class KeyboardTheme implements Comparable { ContextCompat.getColor(context, R.color.background_amoled_dark), ContextCompat.getColor(context, R.color.background_amoled_dark), ContextCompat.getColor(context, R.color.key_text_color_lxx_dark), - ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark) + ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_dark), + ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark) ); case THEME_LIGHT: default: @@ -206,7 +216,8 @@ public final class KeyboardTheme implements Comparable { ContextCompat.getColor(context, R.color.key_background_functional_lxx_light_border), ContextCompat.getColor(context, R.color.key_background_normal_lxx_light_border), ContextCompat.getColor(context, R.color.key_text_color_lxx_light), - ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_light) + ContextCompat.getColor(context, R.color.key_hint_letter_color_lxx_light), + ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_light) ); } } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Colors.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Colors.kt index 2e6cb6ccb..e45c5108d 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Colors.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Colors.kt @@ -35,7 +35,8 @@ class Colors ( val functionalKey: Int, val spaceBar: Int, val keyText: Int, - val keyHintText: Int + val keyHintText: Int, + val spaceBarText: Int ) { val navBar: Int /** brightened or darkened variant of [background], to be used if exact background color would be @@ -45,7 +46,6 @@ class Colors ( val doubleAdjustedBackground: Int /** brightened or darkened variant of [keyText] */ val adjustedKeyText: Int - val spaceBarText: Int val backgroundFilter: ColorFilter val adjustedBackgroundFilter: ColorFilter @@ -74,11 +74,9 @@ class Colors ( val darkerBackground = adjustLuminosityAndKeepAlpha(background, -0.2f) navBar = darkerBackground keyboardBackground = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, intArrayOf(background, darkerBackground)) - spaceBarText = keyText } else { navBar = background keyboardBackground = null - spaceBarText = keyHintText } // create color filters diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/ColorsSettingsFragment.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/ColorsSettingsFragment.kt index 1541a82b1..f077a105e 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/ColorsSettingsFragment.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/ColorsSettingsFragment.kt @@ -33,8 +33,11 @@ open class ColorsSettingsFragment : Fragment(R.layout.color_settings) { private val colorPrefs = listOf( Settings.PREF_COLOR_BACKGROUND_SUFFIX, Settings.PREF_COLOR_KEYS_SUFFIX, + Settings.PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX, + Settings.PREF_COLOR_SPACEBAR_SUFFIX, Settings.PREF_COLOR_TEXT_SUFFIX, Settings.PREF_COLOR_HINT_TEXT_SUFFIX, + Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, Settings.PREF_COLOR_ACCENT_SUFFIX, ) @@ -65,8 +68,11 @@ open class ColorsSettingsFragment : Fragment(R.layout.color_settings) { val colorPrefNames = listOf( R.string.select_color_background, R.string.select_color_key_background, + R.string.select_color_functional_key_background, + R.string.select_color_spacebar_background, R.string.select_color_key, R.string.select_color_key_hint, + R.string.select_color_spacebar_text, R.string.select_color_accent, ).map { requireContext().getString(it) } val prefPrefix = if (isNight) Settings.PREF_THEME_USER_COLOR_NIGHT_PREFIX else Settings.PREF_THEME_USER_COLOR_PREFIX diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java index 3df70692f..cad025f39 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java @@ -62,6 +62,9 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_THEME_USER_COLOR_PREFIX = "theme_color_"; public static final String PREF_THEME_USER_COLOR_NIGHT_PREFIX = "theme_dark_color_"; public static final String PREF_COLOR_KEYS_SUFFIX = "keys"; + public static final String PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX = "functional_keys"; + public static final String PREF_COLOR_SPACEBAR_SUFFIX = "spacebar"; + public static final String PREF_COLOR_SPACEBAR_TEXT_SUFFIX = "spacebar_text"; public static final String PREF_COLOR_ACCENT_SUFFIX = "accent"; public static final String PREF_COLOR_TEXT_SUFFIX = "text"; public static final String PREF_COLOR_HINT_TEXT_SUFFIX = "hint_text"; @@ -511,9 +514,16 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang else return Color.WHITE; case PREF_COLOR_HINT_TEXT_SUFFIX: if (ColorUtilKt.isBrightColor(readUserColor(prefs, context, PREF_COLOR_KEYS_SUFFIX, isNight))) return Color.DKGRAY; - else return Color.LTGRAY; + else return readUserColor(prefs, context, PREF_COLOR_TEXT_SUFFIX, isNight); case PREF_COLOR_KEYS_SUFFIX: return ColorUtilKt.brightenOrDarken(readUserColor(prefs, context, PREF_COLOR_BACKGROUND_SUFFIX, isNight), isNight); + case PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX: + return ColorUtilKt.brightenOrDarken(readUserColor(prefs, context, PREF_COLOR_KEYS_SUFFIX, isNight), true); + case PREF_COLOR_SPACEBAR_SUFFIX: + return readUserColor(prefs, context, PREF_COLOR_KEYS_SUFFIX, isNight); + case PREF_COLOR_SPACEBAR_TEXT_SUFFIX: + if (ColorUtilKt.isBrightColor(readUserColor(prefs, context, PREF_COLOR_SPACEBAR_SUFFIX, isNight))) return Color.DKGRAY; + else return readUserColor(prefs, context, PREF_COLOR_TEXT_SUFFIX, isNight); case PREF_COLOR_BACKGROUND_SUFFIX: default: return ContextCompat.getColor(getDayNightContext(context, isNight), R.color.keyboard_background); diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f1eb58e0e..4ae0e74eb 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -220,6 +220,9 @@ Nouveau dictionnaire: Texte des touches Indice des touches Arrière-plan des touches + Arrière-plan des touches fonctionnelles + Arrière-plan de la barre d\'espace + Texte de la barre d\'espace Couleur d\'accentuation À propos Lien vers GitHub diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e1ef8ccb9..a8e66ec07 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -49,11 +49,13 @@ #B337474F + #B337474F #37474F #FFFFFF #80FFFFFF + #80FFFFFF #0d0d0d diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d51d2cca2..225f960dc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -606,6 +606,12 @@ New dictionary: Key hint text Key background + + Functional key background + + Space bar background + + Space bar text Accent