From 5a048eff9210056ae32ff8189d28384216f9587a Mon Sep 17 00:00:00 2001 From: aliveoutside <53598473+aliveoutside@users.noreply.github.com> Date: Sun, 28 Aug 2022 20:07:26 +0300 Subject: [PATCH] add attr replacer --- .../main/java/ru/vtosters/lite/res/Recolor.java | 16 ++++++++++------ .../ru/vtosters/lite/res/attrs/BaseAttrs.java | 13 +++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/ru/vtosters/lite/res/attrs/BaseAttrs.java diff --git a/app/src/main/java/ru/vtosters/lite/res/Recolor.java b/app/src/main/java/ru/vtosters/lite/res/Recolor.java index f7f85c263..df88c5b3a 100644 --- a/app/src/main/java/ru/vtosters/lite/res/Recolor.java +++ b/app/src/main/java/ru/vtosters/lite/res/Recolor.java @@ -1,17 +1,16 @@ package ru.vtosters.lite.res; import android.app.Activity; -import android.graphics.Color; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import com.vk.core.ui.themes.VKThemeHelper; - import java.util.ArrayList; import java.util.List; +import ru.vtosters.lite.res.attrs.AccentAttrs; +import ru.vtosters.lite.res.attrs.BaseAttrs; import ru.vtosters.lite.res.models.ViewModel; import ru.vtosters.lite.res.modifiers.FloatingActionButtonRecolor; import ru.vtosters.lite.res.modifiers.IModifier; @@ -27,17 +26,20 @@ import ru.vtosters.lite.res.modifiers.ViewRecolor; public class Recolor { private static final List recolors = new ArrayList<>(); + private static final List attrs = new ArrayList<>(); static { recolors.add(new FloatingActionButtonRecolor()); recolors.add(new ImageViewRecolor()); recolors.add(new ProgressBarRecolor()); - recolors.add( new SwitchCompatRecolor()); + recolors.add(new SwitchCompatRecolor()); recolors.add(new TabLayoutRecolor()); recolors.add(new TextViewRecolor()); recolors.add(new TintTextViewRecolor()); recolors.add(new ToolbarRecolor()); recolors.add(new ViewRecolor()); + + attrs.add(new AccentAttrs()); } public static void recolorViewOrViewGroup(View target, SparseArray satts) { @@ -55,8 +57,10 @@ public class Recolor { for (var recolor : recolors) { if (!recolor.isModified(target)) continue; for (var attr : viewModel.attrs) { - //if (!VTLColors.hasColor(attr.second)) continue; - recolor.modify(target, attr.first, VKThemeHelper.d(attr.second)); + for (var baseAttr : attrs) { + baseAttr.replace(attr.second); + } + recolor.modify(target, attr.first, VTLColors.getColor(attr.second)); } } diff --git a/app/src/main/java/ru/vtosters/lite/res/attrs/BaseAttrs.java b/app/src/main/java/ru/vtosters/lite/res/attrs/BaseAttrs.java new file mode 100644 index 000000000..4c44340e2 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/res/attrs/BaseAttrs.java @@ -0,0 +1,13 @@ +package ru.vtosters.lite.res.attrs; + +import java.util.List; + +public abstract class BaseAttrs { + protected int replaceIf(List attrs, int attrSrc, int attrDst) { + if (attrs.contains(attrSrc)) { + return attrDst; + } + return attrSrc; + } + public abstract int replace(int attr); +}