diff options
| author | Jules Aguillon | 2024-02-17 19:03:52 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2024-02-17 23:28:31 +0100 |
| commit | 065d9520e571eccca21e28d0e4003ebd4b7079f4 (patch) | |
| tree | 95268d7f1a4b118e80f6ebd1666f0b00f2f6c72a | |
| parent | bb60ed9b13d985a5b52834c90babce305edb68ca (diff) | |
| download | unexpected-keyboard-065d9520e571eccca21e28d0e4003ebd4b7079f4.tar.gz unexpected-keyboard-065d9520e571eccca21e28d0e4003ebd4b7079f4.zip | |
Dim secondary keys in every themes
Themes do not dim secondary keys the same way due to the "offset"
mechanism. Instead, use a ratio that is the same for every themes.
It's still possible to override this ratio per theme.
| -rw-r--r-- | res/values/themes.xml | 10 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Theme.java | 10 |
2 files changed, 8 insertions, 12 deletions
diff --git a/res/values/themes.xml b/res/values/themes.xml index 5eac562..ef3ede6 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -11,7 +11,7 @@ <attr name="colorLabel" format="color"/> <attr name="colorLabelActivated" format="color"/> <attr name="colorLabelLocked" format="color"/> - <attr name="secondaryLightOffset" format="float"/> + <attr name="secondaryDimming" format="float"/> <!-- Corner labels --> <attr name="colorSubLabel" format="color"/> <!-- Borders --> @@ -38,6 +38,7 @@ <item name="keyBorderRadius">5dp</item> <item name="keyBorderWidth">0dp</item> <item name="keyBorderWidthActivated">0dp</item> + <item name="secondaryDimming">0.25</item> <item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item> <item name="emoji_key_text" type="color">?attr/colorLabel</item> </style> @@ -53,7 +54,6 @@ <item name="colorLabelActivated">#3399ff</item> <item name="colorLabelLocked">#33cc33</item> <item name="colorSubLabel">#cccccc</item> - <item name="secondaryLightOffset">-0.2</item> <item name="emoji_button_bg" type="color">#202020</item> <item name="emoji_color" type="color">#ffffff</item> </style> @@ -72,7 +72,6 @@ <item name="colorLabelActivated">#0066cc</item> <item name="colorLabelLocked">#33cc33</item> <item name="colorSubLabel">#333333</item> - <item name="secondaryLightOffset">+0.3</item> <item name="emoji_button_bg">#dedede</item> <item name="emoji_color">#000000</item> </style> @@ -91,7 +90,6 @@ <item name="colorLabelActivated">#009dff</item> <item name="colorLabelLocked">#00ff26</item> <item name="colorSubLabel">#bbbbbb</item> - <item name="secondaryLightOffset">-0.25</item> <item name="keyBorderRadius">1dp</item> <item name="emoji_button_bg">#000000</item> <item name="emoji_color">#ffffff</item> @@ -114,7 +112,6 @@ <item name="colorLabelActivated">#0066cc</item> <item name="colorLabelLocked">#33cc33</item> <item name="colorSubLabel">#333333</item> - <item name="secondaryLightOffset">+0.35</item> <item name="emoji_button_bg">#ffffff</item> <item name="emoji_color">#000000</item> </style> @@ -133,7 +130,6 @@ <item name="colorLabelActivated">#000000</item> <item name="colorLabelLocked">#33cc33</item> <item name="colorSubLabel">#333333</item> - <item name="secondaryLightOffset">+0.35</item> <item name="emoji_button_bg">#ffffff</item> <item name="emoji_color">#000000</item> </style> @@ -145,7 +141,6 @@ <item name="colorLabel">#000000</item> <item name="colorLabelActivated">#ffffff</item> <item name="colorLabelLocked">#e65100</item> - <item name="secondaryLightOffset">0.1</item> <item name="colorSubLabel">#333333</item> <item name="keyBorderWidth">0.0dip</item> <item name="keyBorderWidthActivated">0.0dip</item> @@ -164,7 +159,6 @@ <item name="colorLabel">#000000</item> <item name="colorLabelActivated">#ffffff</item> <item name="colorLabelLocked">#64ffda</item> - <item name="secondaryLightOffset">0.0</item> <item name="colorSubLabel">#004d40</item> <item name="keyBorderWidth">0.0dip</item> <item name="keyBorderWidthActivated">0.0dip</item> diff --git a/srcs/juloo.keyboard2/Theme.java b/srcs/juloo.keyboard2/Theme.java index 8539edb..0319c99 100644 --- a/srcs/juloo.keyboard2/Theme.java +++ b/srcs/juloo.keyboard2/Theme.java @@ -48,8 +48,8 @@ public class Theme activatedColor = s.getColor(R.styleable.keyboard_colorLabelActivated, 0); lockedColor = s.getColor(R.styleable.keyboard_colorLabelLocked, 0); subLabelColor = s.getColor(R.styleable.keyboard_colorSubLabel, 0); - float secondaryLightOffset = s.getFloat(R.styleable.keyboard_secondaryLightOffset, 1.f); - secondaryLabelColor = adjustLight(labelColor, secondaryLightOffset); + secondaryLabelColor = adjustLight(labelColor, + s.getFloat(R.styleable.keyboard_secondaryDimming, 0.25f)); keyBorderRadius = s.getDimension(R.styleable.keyboard_keyBorderRadius, 0); keyBorderWidth = s.getDimension(R.styleable.keyboard_keyBorderWidth, 0); keyBorderWidthActivated = s.getDimension(R.styleable.keyboard_keyBorderWidthActivated, 0); @@ -85,11 +85,13 @@ public class Theme return _indicationPaint; } - int adjustLight(int color, float offset) + /** Interpolate the 'value' component toward its opposite by 'alpha'. */ + int adjustLight(int color, float alpha) { float[] hsv = new float[3]; Color.colorToHSV(color, hsv); - hsv[2] += offset; + float v = hsv[2]; + hsv[2] = alpha - (2 * alpha - 1) * v; return Color.HSVToColor(hsv); } |
