From 3442b865d2da71ab8dd5e337609c3a359735c737 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 26 Feb 2022 12:16:12 +0100
Subject: [PATCH] Fixed default icon color for templates

---
 .../deadlocker8/budgetmaster/accounts/Account.java |  6 ++++++
 .../budgetmaster/categories/Category.java          | 14 ++++++++++++++
 .../deadlocker8/budgetmaster/icon/Iconizable.java  |  2 ++
 .../budgetmaster/templates/Template.java           |  8 ++++----
 src/main/resources/static/js/fontColorPicker.js    |  2 +-
 .../templates/helpers/fontColorPicker.ftl          |  1 +
 6 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
index 768786ea4..bbe07a598 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
@@ -163,6 +163,12 @@ public class Account implements ProvidesID, Iconizable
 		return fontColor;
 	}
 
+	@Override
+	public String getDefaultFontColor(boolean isDarkTheme)
+	{
+		return ACCOUNT_FONT_COLOR;
+	}
+
 	@Override
 	public String toString()
 	{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
index 97818717d..7f2b26dc4 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
@@ -17,6 +17,9 @@ import java.util.Objects;
 @Entity
 public class Category implements ProvidesID, 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
@@ -127,6 +130,17 @@ public class Category implements ProvidesID, Iconizable
 		return fontColor;
 	}
 
+	@Override
+	public String getDefaultFontColor(boolean isDarkTheme)
+	{
+		if(isDarkTheme)
+		{
+			return FONT_COLOR_DARK_THEME;
+		}
+
+		return FONT_COLOR_LIGHT_THEME;
+	}
+
 	public String getAppropriateTextColor()
 	{
 		return ColorUtilsNonJavaFX.getAppropriateTextColor(new Color(color)).toRGBHexWithoutOpacity();
diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
index e0daf1b24..68d3aaf0d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
@@ -32,4 +32,6 @@ public interface Iconizable extends ProvidesID
 	}
 
 	String getFontColor(boolean isDarkTheme);
+
+	String getDefaultFontColor(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 07e532d79..b862f621c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
@@ -221,19 +221,20 @@ public class Template implements TransactionBase, Iconizable
 		final Icon icon = getIconReference();
 		if(icon == null)
 		{
-			return getAppropriateTextColor(isDarkTheme);
+			return getDefaultFontColor(isDarkTheme);
 		}
 
 		final String fontColor = icon.getFontColor();
 		if(fontColor == null)
 		{
-			return getAppropriateTextColor(isDarkTheme);
+			return getDefaultFontColor(isDarkTheme);
 		}
 
 		return fontColor;
 	}
 
-	private String getAppropriateTextColor(boolean isDarkTheme)
+	@Override
+	public String getDefaultFontColor(boolean isDarkTheme)
 	{
 		if(isDarkTheme)
 		{
@@ -243,7 +244,6 @@ public class Template implements TransactionBase, Iconizable
 		return FONT_COLOR_LIGHT_THEME;
 	}
 
-
 	public List<Tag> getTags()
 	{
 		return tags;
diff --git a/src/main/resources/static/js/fontColorPicker.js b/src/main/resources/static/js/fontColorPicker.js
index a1db101f2..534545e8e 100644
--- a/src/main/resources/static/js/fontColorPicker.js
+++ b/src/main/resources/static/js/fontColorPicker.js
@@ -38,7 +38,7 @@ $(document).ready(function()
             }
             catch(e)
             {
-                appropriateColor = '#2E79B9';
+                appropriateColor = fontColorPickerDefaultColor;
             }
 
             document.getElementById("item-icon-preview").style.color = appropriateColor;
diff --git a/src/main/resources/templates/helpers/fontColorPicker.ftl b/src/main/resources/templates/helpers/fontColorPicker.ftl
index 73af8584b..f0c466c1b 100644
--- a/src/main/resources/templates/helpers/fontColorPicker.ftl
+++ b/src/main/resources/templates/helpers/fontColorPicker.ftl
@@ -2,6 +2,7 @@
 
 <#macro fontColorPicker item>
     <input type="hidden" name="fontColor" id="fontColor" value="${item.getFontColor(settings.isUseDarkTheme())}">
+    <script>fontColorPickerDefaultColor = "${item.getDefaultFontColor(settings.isUseDarkTheme())}"</script>
 
     <div class="row">
         <div class="input-field col s12 m12 l8 offset-l2">
-- 
GitLab