From caa897cb15c1b7f31d79dbd083d4b0b350f2ef25 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 20 Feb 2022 11:32:22 +0100
Subject: [PATCH] fixed default icon font color for templates in light theme

---
 .../budgetmaster/accounts/Account.java        |  2 +-
 .../budgetmaster/categories/Category.java     |  2 +-
 .../budgetmaster/icon/Iconizable.java         |  2 +-
 .../budgetmaster/templates/Template.java      | 20 ++++++++++++++++---
 .../categories/categoriesFunctions.ftl        |  2 +-
 .../templates/helpers/customSelectMacros.ftl  |  2 +-
 .../templates/helpers/fontColorPicker.ftl     |  4 ++--
 .../templates/helpers/iconSelect.ftl          |  2 +-
 .../templates/templates/templateFunctions.ftl |  2 +-
 9 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
index 725825a31..768786ea4 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
@@ -146,7 +146,7 @@ public class Account implements ProvidesID, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
index 1757a9378..97818717d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
@@ -110,7 +110,7 @@ public class Category implements ProvidesID, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
index defb1b347..e0daf1b24 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
@@ -31,5 +31,5 @@ public interface Iconizable extends ProvidesID
 		this.setIconReference(icon);
 	}
 
-	String getFontColor();
+	String getFontColor(boolean isDarkTheme);
 }
diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java b/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
index 3a12aacf8..07e532d79 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
@@ -18,6 +18,9 @@ import java.util.Objects;
 @Entity
 public class Template implements TransactionBase, Iconizable
 {
+	private static final String FONT_COLOR_LIGHT_THEME = "#212121";
+	private static final String FONT_COLOR_DARK_THEME = "#FFFFFF";
+
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Expose
@@ -213,23 +216,34 @@ public class Template implements TransactionBase, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
 		{
-			return "#FFFFFF";
+			return getAppropriateTextColor(isDarkTheme);
 		}
 
 		final String fontColor = icon.getFontColor();
 		if(fontColor == null)
 		{
-			return "#FFFFFF";
+			return getAppropriateTextColor(isDarkTheme);
 		}
 
 		return fontColor;
 	}
 
+	private String getAppropriateTextColor(boolean isDarkTheme)
+	{
+		if(isDarkTheme)
+		{
+			return FONT_COLOR_DARK_THEME;
+		}
+
+		return FONT_COLOR_LIGHT_THEME;
+	}
+
+
 	public List<Tag> getTags()
 	{
 		return tags;
diff --git a/src/main/resources/templates/categories/categoriesFunctions.ftl b/src/main/resources/templates/categories/categoriesFunctions.ftl
index f112cda01..421115707 100644
--- a/src/main/resources/templates/categories/categoriesFunctions.ftl
+++ b/src/main/resources/templates/categories/categoriesFunctions.ftl
@@ -23,7 +23,7 @@
     </#if>
 
     <div class="category-circle ${classes} <#if settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles() == false>category-square</#if>" style="background-color: ${category.color}" <#if datasetValue>data-value="${category.getID()}"</#if>>
-        <span style="color: ${category.getFontColor()}">
+        <span style="color: ${category.getFontColor(settings.isUseDarkTheme())}">
             <@header.entityIcon entity=category classes="category-icon" fallbackName=categoryName/>
         </span>
     </div>
diff --git a/src/main/resources/templates/helpers/customSelectMacros.ftl b/src/main/resources/templates/helpers/customSelectMacros.ftl
index 9e9478618..c76bd7765 100644
--- a/src/main/resources/templates/helpers/customSelectMacros.ftl
+++ b/src/main/resources/templates/helpers/customSelectMacros.ftl
@@ -164,7 +164,7 @@
 
 <#macro accountIcon account accountName classes="" datasetValue="">
     <div class="category-circle ${classes} category-square <#if account.getIconReference()?? && account.getIconReference().isFallbackIcon()>account-square-border</#if>" <#if datasetValue?has_content>data-value="${account.getID()}"</#if>>
-        <span style="color: ${account.getFontColor()}">
+        <span style="color: ${account.getFontColor(settings.isUseDarkTheme())}">
             <@header.entityIcon entity=account classes="account-select-icon" fallbackName=accountName/>
         </span>
     </div>
diff --git a/src/main/resources/templates/helpers/fontColorPicker.ftl b/src/main/resources/templates/helpers/fontColorPicker.ftl
index c995ee4b1..73af8584b 100644
--- a/src/main/resources/templates/helpers/fontColorPicker.ftl
+++ b/src/main/resources/templates/helpers/fontColorPicker.ftl
@@ -1,7 +1,7 @@
 <#import "../helpers/header.ftl" as header>
 
 <#macro fontColorPicker item>
-    <input type="hidden" name="fontColor" id="fontColor" value="${item.getFontColor()}">
+    <input type="hidden" name="fontColor" id="fontColor" value="${item.getFontColor(settings.isUseDarkTheme())}">
 
     <div class="row">
         <div class="input-field col s12 m12 l8 offset-l2">
@@ -12,7 +12,7 @@
                 <@header.buttonLink url='' icon='auto_fix_high' id='buttonFontColorAuto' localizationKey='account.new.icon.fontcolor.clear' noUrl=true/>
 
                 <div id="fontColorPickerContainer" class="valign-wrapper">
-                    <div id="fontColorPicker" style="background-color: ${item.getFontColor()}"></div>
+                    <div id="fontColorPicker" style="background-color: ${item.getFontColor(settings.isUseDarkTheme())}"></div>
                 </div>
             </div>
         </div>
diff --git a/src/main/resources/templates/helpers/iconSelect.ftl b/src/main/resources/templates/helpers/iconSelect.ftl
index f29f9dd2c..db0caf5d6 100644
--- a/src/main/resources/templates/helpers/iconSelect.ftl
+++ b/src/main/resources/templates/helpers/iconSelect.ftl
@@ -12,7 +12,7 @@
 
             <div id="${id}" class="valign-wrapper item-icon">
                 <div class="item-icon-preview-container">
-                    <a id="item-icon-preview" style="color: <#if item.getFontColor()??>${item.getFontColor()}</#if>">
+                    <a id="item-icon-preview" style="color: <#if item.getFontColor(settings.isUseDarkTheme())??>${item.getFontColor(settings.isUseDarkTheme())}</#if>">
                         <script>iconSelectAdditionalBackgroundClasses = "${backgroundClasses}";</script>
                         <div id="item-icon-preview-background" class="category-circle category-circle-preview <#if settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles() == false>category-square</#if> ${initialBackgroundClasses}" style="background-color: <#if showBackground>${item.getColor()}</#if>">
                             <i id="builtin-icon-preview-icon" class="<#if hasBuiltinIcon>${item.getIconReference().getBuiltinIdentifier()}<#else>hidden</#if>"></i>
diff --git a/src/main/resources/templates/templates/templateFunctions.ftl b/src/main/resources/templates/templates/templateFunctions.ftl
index ca147ab11..06b3b71f1 100644
--- a/src/main/resources/templates/templates/templateFunctions.ftl
+++ b/src/main/resources/templates/templates/templateFunctions.ftl
@@ -98,7 +98,7 @@
 
 
 <#macro templateHeader template>
-    <span style="color: ${template.getFontColor()}">
+    <span style="color: ${template.getFontColor(settings.isUseDarkTheme())}">
         <#if template.getIconReference()?? && (template.getIconReference().isImageIcon() || template.getIconReference().isBuiltinIcon())>
             <@header.entityIcon entity=template classes="template-icon"/>
         <#elseif template.getTransferAccount()??>
-- 
GitLab