Change summary
src/cheogram/res/values/strings.xml | 1
src/cheogram/res/values/themes.xml | 43 +++++++
src/main/java/eu/siacs/conversations/utils/ThemeHelper.java | 8 +
src/main/res/values-v29/theme-settings.xml | 2
4 files changed, 53 insertions(+), 1 deletion(-)
Detailed changes
@@ -23,4 +23,5 @@
<string name="action_complete">Finish</string>
<string name="action_close">Close</string>
<string name="action_execute">Go</string>
+ <string name="pref_theme_oledblack">OLED Black</string>
</resources>
@@ -324,6 +324,25 @@
<item name="unread_count">#1E0036</item>
</style>
+ <style name="ConversationsTheme.OLEDBlack" parent="ConversationsTheme.Dark">
+ <item name="colorPrimary">@color/black</item>
+ <item name="colorPrimaryDark">@color/black</item>
+ <item name="colorAccent">@color/yeller</item>
+
+ <item name="message_bubble_received_bg">?colorPrimary</item>
+ <item name="message_bubble_sent_bg">?color_background_primary</item>
+ <item name="message_bubble_shadow_light">#00000000</item>
+ <item name="message_bubble_shadow_dark">#FF000000</item>
+ <item name="message_bubble_shadow_dark_top">#DD000000</item>
+
+ <item name="color_background_primary">@color/black</item>
+ <item name="color_background_secondary">@color/black</item>
+ <item name="color_background_tertiary">@color/black</item>
+ <item name="color_background_overlay">@color/black26</item>
+
+ <item name="unread_count">#1E0036</item>
+ </style>
+
<style name="ConversationsTheme.Medium" parent="ConversationsTheme">
<item name="TextSizeCaption">14sp</item>
<item name="TextSizeBody1">16sp</item>
@@ -360,6 +379,18 @@
<item name="IconSize">20sp</item>
</style>
+ <style name="ConversationsTheme.OLEDBlack.Medium" parent="ConversationsTheme.OLEDBlack">
+ <item name="TextSizeCaption">14sp</item>
+ <item name="TextSizeBody1">16sp</item>
+ <item name="TextSizeBody2">16sp</item>
+ <item name="TextSizeSubhead">18sp</item>
+ <item name="TextSizeTitle">22sp</item>
+ <item name="TextSizeDisplay2">47sp</item>
+ <item name="TextSizeInput">18sp</item>
+ <item name="TextSeparation">6sp</item>
+ <item name="IconSize">20sp</item>
+ </style>
+
<style name="ConversationsTheme.Dark.Large" parent="ConversationsTheme.Dark">
<item name="TextSizeCaption">16sp</item>
<item name="TextSizeBody1">18sp</item>
@@ -384,6 +415,18 @@
<item name="IconSize">22sp</item>
</style>
+ <style name="ConversationsTheme.OLEDBlack.Large" parent="ConversationsTheme.OLEDBlack">
+ <item name="TextSizeCaption">16sp</item>
+ <item name="TextSizeBody1">18sp</item>
+ <item name="TextSizeBody2">18sp</item>
+ <item name="TextSizeSubhead">20sp</item>
+ <item name="TextSizeTitle">24sp</item>
+ <item name="TextSizeDisplay2">48sp</item>
+ <item name="TextSizeInput">20sp</item>
+ <item name="TextSeparation">7sp</item>
+ <item name="IconSize">22sp</item>
+ </style>
+
<style name="ConversationsTheme.Large" parent="ConversationsTheme">
<item name="TextSizeCaption">16sp</item>
<item name="TextSizeBody1">18sp</item>
@@ -58,12 +58,15 @@ public class ThemeHelper {
switch (fontSize) {
case "medium":
if ("obsidian".equals(setting)) return R.style.ConversationsTheme_Obsidian_Medium;
+ else if ("oledblack".equals(setting)) return R.style.ConversationsTheme_OLEDBlack_Medium;
return dark ? R.style.ConversationsTheme_Dark_Medium : R.style.ConversationsTheme_Medium;
case "large":
if ("obsidian".equals(setting)) return R.style.ConversationsTheme_Obsidian_Large;
+ else if ("oledblack".equals(setting)) return R.style.ConversationsTheme_OLEDBlack_Large;
return dark ? R.style.ConversationsTheme_Dark_Large : R.style.ConversationsTheme_Large;
default:
if ("obsidian".equals(setting)) return R.style.ConversationsTheme_Obsidian;
+ else if ("oledblack".equals(setting)) return R.style.ConversationsTheme_OLEDBlack;
return dark ? R.style.ConversationsTheme_Dark : R.style.ConversationsTheme;
}
}
@@ -88,7 +91,7 @@ public class ThemeHelper {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && "automatic".equals(setting)) {
return (resources.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
} else {
- return "dark".equals(setting) || "obsidian".equals(setting);
+ return "dark".equals(setting) || "obsidian".equals(setting) || "oledblack".equals(setting);
}
}
@@ -100,6 +103,9 @@ public class ThemeHelper {
case R.style.ConversationsTheme_Obsidian:
case R.style.ConversationsTheme_Obsidian_Large:
case R.style.ConversationsTheme_Obsidian_Medium:
+ case R.style.ConversationsTheme_OLEDBlack:
+ case R.style.ConversationsTheme_OLEDBlack_Large:
+ case R.style.ConversationsTheme_OLEDBlack_Medium:
return true;
default:
return false;
@@ -7,12 +7,14 @@
<item>@string/pref_theme_light</item>
<item>@string/pref_theme_dark</item>
<item>@string/pref_theme_obsidian</item>
+ <item>@string/pref_theme_oledblack</item>
</string-array>
<string-array name="themes_values" tools:ignore="InconsistentArrays">
<item>automatic</item>
<item>light</item>
<item>dark</item>
<item>obsidian</item>
+ <item>oledblack</item>
</string-array>
</resources>