mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-05-16 15:02:48 +00:00
add separate color for suggestion strip, fixes #285
This commit is contained in:
parent
7941fd8ac4
commit
c7ea083176
6 changed files with 30 additions and 22 deletions
|
@ -165,6 +165,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_SUFFIX, false),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_TEXT_SUFFIX, false),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_HINT_TEXT_SUFFIX, false),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SUGGESTION_TEXT_SUFFIX, false),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, false)
|
||||
);
|
||||
case THEME_USER_NIGHT:
|
||||
|
@ -179,6 +180,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_SUFFIX, true),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_TEXT_SUFFIX, true),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_HINT_TEXT_SUFFIX, true),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SUGGESTION_TEXT_SUFFIX, true),
|
||||
Settings.readUserColor(prefs, context, Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, true)
|
||||
);
|
||||
case THEME_DARK:
|
||||
|
@ -194,6 +196,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
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_text_color_lxx_dark),
|
||||
ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark)
|
||||
);
|
||||
case THEME_HOLO_WHITE:
|
||||
|
@ -209,6 +212,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
Color.parseColor("#FFFFFF"),
|
||||
Color.parseColor("#FFFFFF"),
|
||||
Color.parseColor("#282828"),
|
||||
Color.parseColor("#FFFFFF"),
|
||||
Color.parseColor("#80FFFFFF")
|
||||
);
|
||||
case THEME_DARKER:
|
||||
|
@ -223,6 +227,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
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_text_color_lxx_dark),
|
||||
ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark)
|
||||
);
|
||||
case THEME_BLACK:
|
||||
|
@ -237,6 +242,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
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_text_color_lxx_dark),
|
||||
ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_dark)
|
||||
);
|
||||
case THEME_DYNAMIC:
|
||||
|
@ -256,6 +262,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
|
|||
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_text_color_lxx_light),
|
||||
ContextCompat.getColor(context, R.color.spacebar_letter_color_lxx_light)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -115,8 +115,8 @@ class ClipboardHistoryView @JvmOverloads constructor(
|
|||
clipboardStrip.addView(it)
|
||||
it.setOnTouchListener(this@ClipboardHistoryView)
|
||||
it.setOnClickListener(this@ClipboardHistoryView)
|
||||
colors.setColor(it, ColorType.CLEAR_CLIPBOARD_HISTORY_KEY)
|
||||
colors.setBackground(it, ColorType.CLEAR_CLIPBOARD_HISTORY_KEY)
|
||||
colors.setColor(it, ColorType.TOOL_BAR_KEY)
|
||||
colors.setBackground(it, ColorType.TOOL_BAR_KEY)
|
||||
}
|
||||
colors.setBackground(clipboardStrip, ColorType.BACKGROUND)
|
||||
}
|
||||
|
|
|
@ -247,7 +247,7 @@ class DynamicColors(context: Context, override val themeStyle: String, override
|
|||
CHIP, EMOJI_CATEGORY_BACKGROUND, GESTURE_PREVIEW, MORE_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW -> adjustedBackground
|
||||
TOOL_BAR_EXPAND_KEY_BACKGROUND -> if (!isNight) accent else doubleAdjustedBackground
|
||||
GESTURE_TRAIL -> gesture
|
||||
KEY_TEXT, SUGGESTION_AUTO_CORRECT, REMOVE_SUGGESTION_ICON, CLEAR_CLIPBOARD_HISTORY_KEY,
|
||||
KEY_TEXT, SUGGESTION_AUTO_CORRECT, REMOVE_SUGGESTION_ICON,
|
||||
KEY_ICON, ONE_HANDED_MODE_BUTTON, EMOJI_CATEGORY, TOOL_BAR_KEY, FUNCTIONAL_KEY_TEXT -> keyText
|
||||
KEY_HINT_TEXT -> keyHintText
|
||||
SPACE_BAR_TEXT -> spaceBarText
|
||||
|
@ -290,7 +290,7 @@ class DynamicColors(context: Context, override val themeStyle: String, override
|
|||
|
||||
private fun getColorFilter(color: ColorType): ColorFilter? = when (color) {
|
||||
EMOJI_CATEGORY_SELECTED, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accentColorFilter
|
||||
REMOVE_SUGGESTION_ICON, CLEAR_CLIPBOARD_HISTORY_KEY, EMOJI_CATEGORY, KEY_TEXT,
|
||||
REMOVE_SUGGESTION_ICON, EMOJI_CATEGORY, KEY_TEXT,
|
||||
KEY_ICON, ONE_HANDED_MODE_BUTTON, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY -> keyTextFilter
|
||||
KEY_PREVIEW -> adjustedBackgroundFilter
|
||||
ACTION_KEY_ICON -> actionKeyIconColorFilter
|
||||
|
@ -323,7 +323,6 @@ class DynamicColors(context: Context, override val themeStyle: String, override
|
|||
if (view.background == null)
|
||||
view.setBackgroundColor(Color.WHITE) // set white to make the color filters word
|
||||
when (color) {
|
||||
CLEAR_CLIPBOARD_HISTORY_KEY -> setColor(view.background, SUGGESTION_BACKGROUND)
|
||||
EMOJI_CATEGORY_BACKGROUND -> view.setBackgroundColor(get(color))
|
||||
KEY_PREVIEW -> view.background.colorFilter = adjustedBackgroundFilter
|
||||
FUNCTIONAL_KEY_BACKGROUND, KEY_BACKGROUND, BACKGROUND, SPACE_BAR_BACKGROUND, SUGGESTION_BACKGROUND -> setColor(view.background, color)
|
||||
|
@ -353,6 +352,7 @@ class DefaultColors (
|
|||
private val spaceBar: Int,
|
||||
private val keyText: Int,
|
||||
private val keyHintText: Int,
|
||||
private val suggestionText: Int,
|
||||
private val spaceBarText: Int
|
||||
) : Colors {
|
||||
private val navBar: Int
|
||||
|
@ -361,13 +361,13 @@ class DefaultColors (
|
|||
private val adjustedBackground: Int
|
||||
/** further brightened or darkened variant of [adjustedBackground] */
|
||||
private val doubleAdjustedBackground: Int
|
||||
/** brightened or darkened variant of [keyText] */
|
||||
private val adjustedKeyText: Int
|
||||
private val adjustedSuggestionText = brightenOrDarken(suggestionText, true)
|
||||
|
||||
private val backgroundFilter: ColorFilter
|
||||
private val backgroundFilter = colorFilter(background)
|
||||
private val adjustedBackgroundFilter: ColorFilter
|
||||
private val keyTextFilter: ColorFilter
|
||||
private val accentColorFilter: ColorFilter = colorFilter(accent)
|
||||
private val suggestionTextFilter = colorFilter(suggestionText)
|
||||
private val accentColorFilter = colorFilter(accent)
|
||||
|
||||
/** color filter for the white action key icons in material theme, switches to gray if necessary for contrast */
|
||||
private val actionKeyIconColorFilter: ColorFilter?
|
||||
|
@ -395,9 +395,6 @@ class DefaultColors (
|
|||
keyboardBackground = null
|
||||
}
|
||||
|
||||
backgroundFilter = colorFilter(background)
|
||||
adjustedKeyText = brightenOrDarken(keyText, true)
|
||||
|
||||
if (isDarkColor(background)) {
|
||||
adjustedBackground = brighten(background)
|
||||
doubleAdjustedBackground = brighten(adjustedBackground)
|
||||
|
@ -445,8 +442,7 @@ class DefaultColors (
|
|||
CHIP, EMOJI_CATEGORY_BACKGROUND, GESTURE_PREVIEW, MORE_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW -> adjustedBackground
|
||||
TOOL_BAR_EXPAND_KEY_BACKGROUND -> doubleAdjustedBackground
|
||||
GESTURE_TRAIL -> gesture
|
||||
KEY_TEXT, SUGGESTION_AUTO_CORRECT, REMOVE_SUGGESTION_ICON, CLEAR_CLIPBOARD_HISTORY_KEY, FUNCTIONAL_KEY_TEXT,
|
||||
KEY_ICON, ONE_HANDED_MODE_BUTTON, EMOJI_CATEGORY, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY -> keyText
|
||||
KEY_TEXT, REMOVE_SUGGESTION_ICON, FUNCTIONAL_KEY_TEXT, KEY_ICON -> keyText
|
||||
KEY_HINT_TEXT -> keyHintText
|
||||
SPACE_BAR_TEXT -> spaceBarText
|
||||
FUNCTIONAL_KEY_BACKGROUND -> functionalKey
|
||||
|
@ -456,7 +452,8 @@ class DefaultColors (
|
|||
ACTION_KEY_MORE_KEYS_BACKGROUND -> if (themeStyle == STYLE_HOLO) adjustedBackground else accent
|
||||
SUGGESTION_BACKGROUND -> if (!hasKeyBorders && themeStyle == STYLE_MATERIAL) adjustedBackground else background
|
||||
NAVIGATION_BAR -> navBar
|
||||
MORE_SUGGESTIONS_HINT, SUGGESTED_WORD, SUGGESTION_TYPED_WORD, SUGGESTION_VALID_WORD -> adjustedKeyText
|
||||
SUGGESTION_AUTO_CORRECT, EMOJI_CATEGORY, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY, ONE_HANDED_MODE_BUTTON -> suggestionText
|
||||
MORE_SUGGESTIONS_HINT, SUGGESTED_WORD, SUGGESTION_TYPED_WORD, SUGGESTION_VALID_WORD -> adjustedSuggestionText
|
||||
ACTION_KEY_ICON -> Color.WHITE
|
||||
}
|
||||
|
||||
|
@ -490,7 +487,6 @@ class DefaultColors (
|
|||
if (view.background == null)
|
||||
view.setBackgroundColor(Color.WHITE) // set white to make the color filters word
|
||||
when (color) {
|
||||
CLEAR_CLIPBOARD_HISTORY_KEY -> setColor(view.background, SUGGESTION_BACKGROUND)
|
||||
EMOJI_CATEGORY_BACKGROUND -> view.setBackgroundColor(get(color))
|
||||
KEY_PREVIEW, MORE_KEYS_BACKGROUND -> view.background.colorFilter = adjustedBackgroundFilter
|
||||
FUNCTIONAL_KEY_BACKGROUND, KEY_BACKGROUND, BACKGROUND, SPACE_BAR_BACKGROUND, SUGGESTION_BACKGROUND -> setColor(view.background, color)
|
||||
|
@ -506,8 +502,8 @@ class DefaultColors (
|
|||
|
||||
private fun getColorFilter(color: ColorType): ColorFilter? = when (color) {
|
||||
EMOJI_CATEGORY_SELECTED, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accentColorFilter
|
||||
REMOVE_SUGGESTION_ICON, CLEAR_CLIPBOARD_HISTORY_KEY, EMOJI_CATEGORY, KEY_TEXT, KEY_ICON,
|
||||
ONE_HANDED_MODE_BUTTON, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY -> keyTextFilter
|
||||
KEY_TEXT, KEY_ICON -> keyTextFilter
|
||||
REMOVE_SUGGESTION_ICON, EMOJI_CATEGORY, ONE_HANDED_MODE_BUTTON, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY -> suggestionTextFilter
|
||||
KEY_PREVIEW -> adjustedBackgroundFilter
|
||||
ACTION_KEY_ICON -> actionKeyIconColorFilter
|
||||
else -> colorFilter(get(color)) // create color filter (not great for performance, so the frequently used filters should be stored)
|
||||
|
@ -552,7 +548,6 @@ enum class ColorType {
|
|||
ACTION_KEY_MORE_KEYS_BACKGROUND,
|
||||
BACKGROUND,
|
||||
CHIP,
|
||||
CLEAR_CLIPBOARD_HISTORY_KEY,
|
||||
CLIPBOARD_PIN,
|
||||
CLIPBOARD_BACKGROUND,
|
||||
EMOJI_BACKGROUND,
|
||||
|
|
|
@ -44,14 +44,14 @@ open class ColorsSettingsFragment : Fragment(R.layout.color_settings), MenuProvi
|
|||
Settings.PREF_COLOR_SPACEBAR_SUFFIX,
|
||||
Settings.PREF_COLOR_TEXT_SUFFIX,
|
||||
Settings.PREF_COLOR_HINT_TEXT_SUFFIX,
|
||||
Settings.PREF_COLOR_SUGGESTION_TEXT_SUFFIX,
|
||||
Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX,
|
||||
Settings.PREF_COLOR_ACCENT_SUFFIX,
|
||||
Settings.PREF_COLOR_GESTURE_SUFFIX,
|
||||
)
|
||||
private val colorPrefsToHideInitially by lazy {
|
||||
listOf(Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, Settings.PREF_COLOR_GESTURE_SUFFIX) +
|
||||
if (prefs.getBoolean(Settings.PREF_THEME_KEY_BORDERS, false))
|
||||
listOf(Settings.PREF_COLOR_SPACEBAR_SUFFIX)
|
||||
listOf(Settings.PREF_COLOR_SUGGESTION_TEXT_SUFFIX,Settings.PREF_COLOR_SPACEBAR_TEXT_SUFFIX, Settings.PREF_COLOR_GESTURE_SUFFIX) +
|
||||
if (prefs.getBoolean(Settings.PREF_THEME_KEY_BORDERS, false)) listOf(Settings.PREF_COLOR_SPACEBAR_SUFFIX)
|
||||
else listOf(Settings.PREF_COLOR_KEYS_SUFFIX, Settings.PREF_COLOR_FUNCTIONAL_KEYS_SUFFIX)
|
||||
}
|
||||
|
||||
|
@ -112,6 +112,7 @@ open class ColorsSettingsFragment : Fragment(R.layout.color_settings), MenuProvi
|
|||
R.string.select_color_spacebar_background,
|
||||
R.string.select_color_key,
|
||||
R.string.select_color_key_hint,
|
||||
R.string.select_color_suggestion,
|
||||
R.string.select_color_spacebar_text,
|
||||
R.string.select_color_accent,
|
||||
R.string.select_color_gesture,
|
||||
|
|
|
@ -70,6 +70,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||
public static final String PREF_COLOR_ACCENT_SUFFIX = "accent";
|
||||
public static final String PREF_COLOR_GESTURE_SUFFIX = "gesture";
|
||||
public static final String PREF_COLOR_TEXT_SUFFIX = "text";
|
||||
public static final String PREF_COLOR_SUGGESTION_TEXT_SUFFIX = "suggestion_text";
|
||||
public static final String PREF_COLOR_HINT_TEXT_SUFFIX = "hint_text";
|
||||
public static final String PREF_COLOR_BACKGROUND_SUFFIX = "background";
|
||||
public static final String PREF_AUTO_USER_COLOR_SUFFIX = "_auto";
|
||||
|
@ -558,6 +559,8 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||
return ContextCompat.getColor(getDayNightContext(context, isNight), R.color.accent);
|
||||
case PREF_COLOR_GESTURE_SUFFIX:
|
||||
return readUserColor(prefs, context, PREF_COLOR_ACCENT_SUFFIX, isNight);
|
||||
case PREF_COLOR_SUGGESTION_TEXT_SUFFIX:
|
||||
return readUserColor(prefs, context, PREF_COLOR_TEXT_SUFFIX, isNight);
|
||||
case PREF_COLOR_TEXT_SUFFIX:
|
||||
// base it on background color, and not key, because it's also used for suggestions
|
||||
final int background = readUserColor(prefs, context, PREF_COLOR_BACKGROUND_SUFFIX, isNight);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue