From 5547de006bac7a71e5f05daea3143bee989f4a18 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Sat, 11 Jun 2022 16:42:39 +0300 Subject: [PATCH] upgraded ColorStateList recoloring --- .../java/ru/vtosters/lite/utils/Themes.java | 31 ++++++++----------- .../support/v4/content/ContextCompat.smali | 6 +--- .../com/vk/music/utils/BoomViewHelper.smali | 4 --- .../support/v7/c/a/AppCompatResources.smali | 6 +--- .../com/vk/core/extensions/TextViewExt.smali | 4 --- .../com/vk/core/util/DrawableUtils.smali | 4 --- 6 files changed, 15 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/utils/Themes.java b/app/src/main/java/ru/vtosters/lite/utils/Themes.java index ff243c043..205c85734 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Themes.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Themes.java @@ -1,7 +1,7 @@ package ru.vtosters.lite.utils; import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; -import static java.util.Arrays.asList; +import static ru.vtosters.lite.utils.Globals.getContext; import static ru.vtosters.lite.utils.Globals.getIdentifier; import static ru.vtosters.lite.utils.Globals.getPrefsValue; import static ru.vtosters.lite.utils.Globals.getResources; @@ -18,27 +18,27 @@ import android.content.res.Configuration; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Build; -import android.support.v4.content.ContextCompat; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Window; import android.widget.ImageButton; -import android.widget.TextView; import androidx.core.graphics.ColorUtils; import com.vk.core.d.RecoloredDrawable; -import com.vk.core.extensions.TextViewExt; import com.vk.core.ui.themes.VKTheme; import com.vk.core.ui.themes.VKThemeHelper; import com.vk.im.ui.themes.ImTheme; import com.vk.im.ui.themes.ImThemeHelper; import com.vtosters.lite.R; +import java.util.Arrays; import java.util.List; public class Themes { - public static List accentColors; + public static List accentColors = Arrays.asList( + "5692d7", "528bcc", "7aa0cc", "518bcc", "6296d0", "2f68aa", "638ebf", "5181b8", "71aaeb", "4774a8", "5baaf4", "4186c8", "add3ff", "4774a8", "718198", "5a9eff", "99a2ad", "74a2d6", "e9eef3", "dfe3e7", "eff1f3", "5c9ce6", "4986cc", "4680c2" + ); public static void applyTheme(VKTheme theme, ImTheme imtheme) { VKThemeHelper.b.a(theme); // VKThemeHelper.b.a(VKTheme value) VK Theme apply @@ -187,7 +187,12 @@ public class Themes { return ColorStateList.valueOf(getAccentColor()); } // Recolor ColorStateList to accent color - public static ColorStateList themeCSL(ColorStateList csl) { + public static ColorStateList themeCSL(Context context, int color) { + if (isColorRefAccented(color) && isAndroidMonet()) { + return ColorStateList.valueOf(getAccentColor()); + } + + ColorStateList csl = context.getColorStateList(color); try { int unsel = csl.getColorForState(new int[]{-android.R.attr.state_selected}, Color.BLACK); int sel = csl.getColorForState(new int[]{android.R.attr.state_selected}, Color.BLACK); @@ -195,7 +200,7 @@ public class Themes { boolean isUnselAccent = isAccentedColor(unsel); boolean isSelAccent = isAccentedColor(sel); - if (isUnselAccent || isSelAccent) { + if (isUnselAccent || isSelAccent ) { return new ColorStateList(new int[][] { new int[]{android.R.attr.state_selected}, new int[]{-android.R.attr.state_selected} @@ -210,16 +215,6 @@ public class Themes { } } // Recolor ColorStateList - public static void recolorTextView(TextView paramTextView, int resid, int colorid) { - if (resid == 0) { - TextViewExt.a(paramTextView, (Drawable) null); - } else if (colorid == 0) { - TextViewExt.a(paramTextView, ContextCompat.a(paramTextView.getContext(), resid)); - } else { - TextViewExt.a(paramTextView, ContextCompat.a(paramTextView.getContext(), resid), themeCSL(paramTextView.getContext().getColorStateList(colorid))); - } - } // Recolor TextView - public static int darken(int color, float by) { float[] hsl = new float[3]; ColorUtils.colorToHSL(color, hsl); @@ -244,7 +239,7 @@ public class Themes { } public static boolean isAccentedColor(int target) { - return accentColors.contains(hex(target).toUpperCase()); + return accentColors.contains(hex(target).toLowerCase()); } public static int getColor(Context context, int i) { diff --git a/smali/smali_classes2/android/support/v4/content/ContextCompat.smali b/smali/smali_classes2/android/support/v4/content/ContextCompat.smali index 6ee76cae9..6bb2a2451 100644 --- a/smali/smali_classes2/android/support/v4/content/ContextCompat.smali +++ b/smali/smali_classes2/android/support/v4/content/ContextCompat.smali @@ -358,11 +358,7 @@ .method public static b(Landroid/content/Context;I)Landroid/content/res/ColorStateList; .locals 2 - invoke-virtual {p0, p1}, Landroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList; - - move-result-object p0 - - invoke-static {p0}, Lru/vtosters/lite/utils/Themes;->themeCSL(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList; + invoke-static {p0, p1}, Lru/vtosters/lite/utils/Themes;->themeCSL(Landroid/content/Context;I)Landroid/content/res/ColorStateList; move-result-object p0 diff --git a/smali/smali_classes4/com/vk/music/utils/BoomViewHelper.smali b/smali/smali_classes4/com/vk/music/utils/BoomViewHelper.smali index 9ee8fb70b..17a9886bb 100644 --- a/smali/smali_classes4/com/vk/music/utils/BoomViewHelper.smali +++ b/smali/smali_classes4/com/vk/music/utils/BoomViewHelper.smali @@ -58,10 +58,6 @@ .method public static final a(Landroid/widget/TextView;II)V .locals 1 - invoke-static {p0, p1, p2}, Lru/vtosters/lite/utils/Themes;->recolorTextView(Landroid/widget/TextView;II)V - - return-void - const-string v0, "textView" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes5/android/support/v7/c/a/AppCompatResources.smali b/smali/smali_classes5/android/support/v7/c/a/AppCompatResources.smali index 2ba680117..5a46a1e88 100644 --- a/smali/smali_classes5/android/support/v7/c/a/AppCompatResources.smali +++ b/smali/smali_classes5/android/support/v7/c/a/AppCompatResources.smali @@ -70,11 +70,7 @@ .method public static a(Landroid/content/Context;I)Landroid/content/res/ColorStateList; .locals 2 - invoke-virtual {p0, p1}, Landroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList; - - move-result-object p0 - - invoke-static {p0}, Lru/vtosters/lite/utils/Themes;->themeCSL(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList; + invoke-static {p0, p1}, Lru/vtosters/lite/utils/Themes;->themeCSL(Landroid/content/Context;I)Landroid/content/res/ColorStateList; move-result-object p0 diff --git a/smali/smali_classes5/com/vk/core/extensions/TextViewExt.smali b/smali/smali_classes5/com/vk/core/extensions/TextViewExt.smali index dfdabcdb7..0c3b3b5b3 100644 --- a/smali/smali_classes5/com/vk/core/extensions/TextViewExt.smali +++ b/smali/smali_classes5/com/vk/core/extensions/TextViewExt.smali @@ -99,10 +99,6 @@ .method public static final a(Landroid/widget/TextView;II)V .locals 1 - invoke-static {p0, p1, p2}, Lru/vtosters/lite/utils/Themes;->recolorTextView(Landroid/widget/TextView;II)V - - return-void - const-string v0, "receiver$0" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes5/com/vk/core/util/DrawableUtils.smali b/smali/smali_classes5/com/vk/core/util/DrawableUtils.smali index 2c87c7a04..d5d03044f 100644 --- a/smali/smali_classes5/com/vk/core/util/DrawableUtils.smali +++ b/smali/smali_classes5/com/vk/core/util/DrawableUtils.smali @@ -108,10 +108,6 @@ .method public static a(Landroid/widget/TextView;II)V .locals 1 - invoke-static {p0, p1, p2}, Lru/vtosters/lite/utils/Themes;->recolorTextView(Landroid/widget/TextView;II)V - - return-void - if-nez p1, :cond_0 const/4 p1, 0x0