From 58778b1f231bd7758ff3ba39c9c55d983d2c9f67 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sat, 29 Mar 2025 10:38:43 +0100 Subject: [PATCH] add all_colors color for key preview text, fixes #1434 --- app/build.gradle.kts | 2 +- .../internal/KeyPreviewChoreographer.java | 2 +- .../internal/KeyVisualAttributes.java | 2 +- .../main/java/helium314/keyboard/latin/App.kt | 8 ++++++++ .../helium314/keyboard/latin/common/Colors.kt | 19 ++++++++++--------- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2f338a1c..12d9b8a4 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -13,7 +13,7 @@ android { applicationId = "helium314.keyboard" minSdk = 21 targetSdk = 35 - versionCode = 3002 + versionCode = 3003 versionName = "3.0-alpha3" ndk { abiFilters.clear() diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyPreviewChoreographer.java b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyPreviewChoreographer.java index 718d1f8c..6dcfef34 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyPreviewChoreographer.java +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyPreviewChoreographer.java @@ -108,7 +108,7 @@ public final class KeyPreviewChoreographer { final boolean hasPopupKeys = (key.getPopupKeys() != null); keyPreviewView.setPreviewBackground(hasPopupKeys, keyPreviewPosition); final Colors colors = Settings.getValues().mColors; - colors.setBackground(keyPreviewView, ColorType.KEY_PREVIEW); + colors.setBackground(keyPreviewView, ColorType.KEY_PREVIEW_BACKGROUND); // The key preview is placed vertically above the top edge of the parent key with an // arbitrary offset. diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyVisualAttributes.java b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyVisualAttributes.java index ee76f94e..2e8b172c 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyVisualAttributes.java +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyVisualAttributes.java @@ -129,7 +129,7 @@ public final class KeyVisualAttributes { // when? -> hasShiftedLetterHint and isShiftedLetterActivated -> both are label flags mShiftedLetterHintActivatedColor = keyAttr.getColor( R.styleable.Keyboard_Key_keyShiftedLetterHintActivatedColor, 0); - mPreviewTextColor = colors.get(ColorType.KEY_TEXT); + mPreviewTextColor = colors.get(ColorType.KEY_PREVIEW_TEXT); mHintLabelVerticalAdjustment = ResourceUtils.getFraction(keyAttr, R.styleable.Keyboard_Key_keyHintLabelVerticalAdjustment, 0.0f); diff --git a/app/src/main/java/helium314/keyboard/latin/App.kt b/app/src/main/java/helium314/keyboard/latin/App.kt index 13f45af1..2ed0765c 100644 --- a/app/src/main/java/helium314/keyboard/latin/App.kt +++ b/app/src/main/java/helium314/keyboard/latin/App.kt @@ -545,6 +545,14 @@ fun checkVersionUpgrade(context: Context) { if (oldVersion <= 3001 && prefs.getInt(Settings.PREF_CLIPBOARD_HISTORY_RETENTION_TIME, Defaults.PREF_CLIPBOARD_HISTORY_RETENTION_TIME) <= 0) { prefs.edit().putInt(Settings.PREF_CLIPBOARD_HISTORY_RETENTION_TIME, 121).apply() } + if (oldVersion <= 3002) { + prefs.all.filterKeys { it.startsWith(Settings.PREF_USER_ALL_COLORS_PREFIX) }.forEach { + val oldValue = prefs.getString(it.key, "")!! + if ("KEY_PREVIEW" !in oldValue) return@forEach + val newValue = oldValue.replace("KEY_PREVIEW", "KEY_PREVIEW_BACKGROUND") + prefs.edit().putString(it.key, newValue).apply() + } + } upgradeToolbarPrefs(prefs) LayoutUtilsCustom.onLayoutFileChanged() // just to be sure prefs.edit { putInt(Settings.PREF_VERSION_CODE, BuildConfig.VERSION_CODE) } diff --git a/app/src/main/java/helium314/keyboard/latin/common/Colors.kt b/app/src/main/java/helium314/keyboard/latin/common/Colors.kt index 6bc71d46..15af33d8 100644 --- a/app/src/main/java/helium314/keyboard/latin/common/Colors.kt +++ b/app/src/main/java/helium314/keyboard/latin/common/Colors.kt @@ -274,10 +274,10 @@ class DynamicColors(context: Context, override val themeStyle: String, override override fun get(color: ColorType): Int = when (color) { TOOL_BAR_KEY_ENABLED_BACKGROUND, EMOJI_CATEGORY_SELECTED, ACTION_KEY_BACKGROUND, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accent - AUTOFILL_BACKGROUND_CHIP, GESTURE_PREVIEW, POPUP_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW -> adjustedBackground + AUTOFILL_BACKGROUND_CHIP, GESTURE_PREVIEW, POPUP_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW_BACKGROUND -> adjustedBackground TOOL_BAR_EXPAND_KEY_BACKGROUND -> if (!isNight) accent else doubleAdjustedBackground GESTURE_TRAIL -> gesture - KEY_TEXT, SUGGESTION_AUTO_CORRECT, REMOVE_SUGGESTION_ICON, EMOJI_KEY_TEXT, + KEY_TEXT, SUGGESTION_AUTO_CORRECT, REMOVE_SUGGESTION_ICON, EMOJI_KEY_TEXT, KEY_PREVIEW_TEXT, KEY_ICON, ONE_HANDED_MODE_BUTTON, EMOJI_CATEGORY, TOOL_BAR_KEY, FUNCTIONAL_KEY_TEXT -> keyText KEY_HINT_TEXT -> keyHintText SPACE_BAR_TEXT -> spaceBarText @@ -327,7 +327,7 @@ class DynamicColors(context: Context, override val themeStyle: String, override EMOJI_CATEGORY_SELECTED, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accentColorFilter REMOVE_SUGGESTION_ICON, EMOJI_CATEGORY, KEY_TEXT, KEY_ICON, ONE_HANDED_MODE_BUTTON, TOOL_BAR_KEY, TOOL_BAR_EXPAND_KEY -> keyTextFilter - KEY_PREVIEW -> adjustedBackgroundFilter + KEY_PREVIEW_BACKGROUND -> adjustedBackgroundFilter ACTION_KEY_ICON -> actionKeyIconColorFilter else -> colorFilter(get(color)) } @@ -336,7 +336,7 @@ class DynamicColors(context: Context, override val themeStyle: String, override if (view.background == null) view.setBackgroundColor(Color.WHITE) // set white to make the color filters work when (color) { - KEY_PREVIEW -> view.background.colorFilter = adjustedBackgroundFilter + KEY_PREVIEW_BACKGROUND -> view.background.colorFilter = adjustedBackgroundFilter FUNCTIONAL_KEY_BACKGROUND, KEY_BACKGROUND, MORE_SUGGESTIONS_WORD_BACKGROUND, SPACE_BAR_BACKGROUND, STRIP_BACKGROUND -> setColor(view.background, color) ONE_HANDED_MODE_BUTTON -> setColor(view.background, if (keyboardBackground == null) MAIN_BACKGROUND else STRIP_BACKGROUND) MORE_SUGGESTIONS_BACKGROUND -> view.background.colorFilter = backgroundFilter @@ -472,10 +472,10 @@ class DefaultColors ( TOOL_BAR_KEY_ENABLED_BACKGROUND, EMOJI_CATEGORY_SELECTED, ACTION_KEY_BACKGROUND, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accent AUTOFILL_BACKGROUND_CHIP -> if (themeStyle == STYLE_MATERIAL && !hasKeyBorders) background else adjustedBackground - GESTURE_PREVIEW, POPUP_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW -> adjustedBackground + GESTURE_PREVIEW, POPUP_KEYS_BACKGROUND, MORE_SUGGESTIONS_BACKGROUND, KEY_PREVIEW_BACKGROUND -> adjustedBackground TOOL_BAR_EXPAND_KEY_BACKGROUND, CLIPBOARD_SUGGESTION_BACKGROUND -> doubleAdjustedBackground GESTURE_TRAIL -> gesture - KEY_TEXT, REMOVE_SUGGESTION_ICON, FUNCTIONAL_KEY_TEXT, KEY_ICON, EMOJI_KEY_TEXT -> keyText + KEY_TEXT, REMOVE_SUGGESTION_ICON, FUNCTIONAL_KEY_TEXT, KEY_ICON, EMOJI_KEY_TEXT, KEY_PREVIEW_TEXT -> keyText KEY_HINT_TEXT -> keyHintText SPACE_BAR_TEXT -> spaceBarText FUNCTIONAL_KEY_BACKGROUND -> functionalKey @@ -524,7 +524,7 @@ class DefaultColors ( if (view.background == null) view.setBackgroundColor(Color.WHITE) // set white to make the color filters work when (color) { - KEY_PREVIEW, POPUP_KEYS_BACKGROUND -> view.background.colorFilter = adjustedBackgroundFilter + KEY_PREVIEW_BACKGROUND, POPUP_KEYS_BACKGROUND -> view.background.colorFilter = adjustedBackgroundFilter FUNCTIONAL_KEY_BACKGROUND, KEY_BACKGROUND, MORE_SUGGESTIONS_WORD_BACKGROUND, SPACE_BAR_BACKGROUND, STRIP_BACKGROUND, CLIPBOARD_SUGGESTION_BACKGROUND -> setColor(view.background, color) ONE_HANDED_MODE_BUTTON -> setColor(view.background, if (keyboardBackground == null) MAIN_BACKGROUND else STRIP_BACKGROUND) MORE_SUGGESTIONS_BACKGROUND -> view.background.colorFilter = backgroundFilter @@ -547,7 +547,7 @@ class DefaultColors ( EMOJI_CATEGORY_SELECTED, CLIPBOARD_PIN, SHIFT_KEY_ICON -> accentColorFilter 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 + KEY_PREVIEW_BACKGROUND -> adjustedBackgroundFilter ACTION_KEY_ICON -> actionKeyIconColorFilter else -> colorFilter(get(color)) // create color filter (not great for performance, so the frequently used filters should be stored) } @@ -629,7 +629,8 @@ enum class ColorType { KEY_ICON, KEY_TEXT, KEY_HINT_TEXT, - KEY_PREVIEW, + KEY_PREVIEW_BACKGROUND, + KEY_PREVIEW_TEXT, MORE_SUGGESTIONS_HINT, MORE_SUGGESTIONS_BACKGROUND, MORE_SUGGESTIONS_WORD_BACKGROUND,