From 6758c8735ca42fd6a73e0d4c9cae675e0718b75a Mon Sep 17 00:00:00 2001 From: aliveoutside <53598473+aliveoutside@users.noreply.github.com> Date: Sun, 28 Aug 2022 20:06:57 +0300 Subject: [PATCH] get color from theme by attr --- .../vtosters/lite/res/models/ThemeModel.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/res/models/ThemeModel.java b/app/src/main/java/ru/vtosters/lite/res/models/ThemeModel.java index d6dea96a5..111d905ed 100644 --- a/app/src/main/java/ru/vtosters/lite/res/models/ThemeModel.java +++ b/app/src/main/java/ru/vtosters/lite/res/models/ThemeModel.java @@ -2,6 +2,8 @@ package ru.vtosters.lite.res.models; import android.graphics.Color; +import com.vk.core.ui.themes.VKThemeHelper; + import org.json.JSONException; import org.json.JSONObject; @@ -10,6 +12,7 @@ import java.util.Collections; import java.util.List; import ru.vtosters.lite.res.managers.PalettesManager; +import ru.vtosters.lite.utils.AndroidUtils; public class ThemeModel { @@ -85,11 +88,23 @@ public class ThemeModel { return false; } - public int getColor(String name) { + public Integer getColor(String name) { for (var item : colors) if (name.equals(item.name)) return item.value; - throw new IllegalArgumentException("Color with name " + name + " not found"); + return null; + } + + public int getColor(int attr) { + var context = AndroidUtils.getGlobalContext(); + var attrString = context.getResources().getResourceEntryName(attr); + var color = getColor(attrString); + + if (color == null) { + color = VKThemeHelper.d(attr); + } + + return color; } public boolean hasPalettes() {