upgraded ColorStateList recoloring

This commit is contained in:
gdlbo
2022-06-11 16:42:39 +03:00
parent 0fbf571c60
commit 5547de006b
6 changed files with 15 additions and 40 deletions
@@ -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<String> accentColors;
public static List<String> 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) {
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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