some code upgrades
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
package com.vk.core.drawable;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.NonNull;
|
||||
import ru.vtosters.lite.themes.utils.RecolorUtils;
|
||||
|
||||
public class RecoloredDrawable extends Drawable implements Drawable.Callback {
|
||||
private Drawable drawable;
|
||||
private ColorStateList colorStateList;
|
||||
private int c;
|
||||
private int d;
|
||||
|
||||
public RecoloredDrawable(Drawable drawable, ColorStateList colorStateList) {
|
||||
this.c = 255;
|
||||
this.d = 255;
|
||||
try {
|
||||
this.drawable = drawable.mutate();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
this.drawable.setCallback(this);
|
||||
this.colorStateList = RecolorUtils.themeCSL(colorStateList);
|
||||
onStateChange(new int[0]);
|
||||
}
|
||||
|
||||
public void a(int i) {
|
||||
a(new ColorStateList(new int[][]{new int[0]}, new int[]{i}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(@NonNull Canvas canvas) {
|
||||
this.drawable.draw(canvas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntrinsicHeight() {
|
||||
return this.drawable.getIntrinsicHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntrinsicWidth() {
|
||||
return this.drawable.getIntrinsicWidth();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOpacity() {
|
||||
return this.drawable.getOpacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateDrawable(@NonNull Drawable drawable) {
|
||||
invalidateSelf();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isStateful() {
|
||||
return this.colorStateList.isStateful();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onStateChange(int[] iArr) {
|
||||
super.onStateChange(iArr);
|
||||
ColorStateList colorStateList = this.colorStateList;
|
||||
this.drawable.setColorFilter(colorStateList.getColorForState(iArr, colorStateList.getDefaultColor()), PorterDuff.Mode.SRC_IN);
|
||||
int length = iArr.length;
|
||||
boolean z = false;
|
||||
int i = 0;
|
||||
while (true) {
|
||||
if (i >= length) {
|
||||
break;
|
||||
} else if (iArr[i] == 0x010100a1) {
|
||||
z = true;
|
||||
break;
|
||||
} else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
this.drawable.setState(iArr);
|
||||
this.drawable.setAlpha(z ? this.c : this.d);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable, long j) {
|
||||
scheduleSelf(runnable, j);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAlpha(int i) {
|
||||
this.c = i;
|
||||
this.d = i;
|
||||
this.drawable.setAlpha(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBounds(int i, int i2, int i3, int i4) {
|
||||
super.setBounds(i, i2, i3, i4);
|
||||
this.drawable.setBounds(i, i2, i3, i4);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColorFilter(ColorFilter colorFilter) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unscheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable) {
|
||||
unscheduleSelf(runnable);
|
||||
}
|
||||
|
||||
public void a(ColorStateList colorStateList) {
|
||||
this.colorStateList = colorStateList;
|
||||
onStateChange(getState());
|
||||
invalidateSelf();
|
||||
}
|
||||
|
||||
public Drawable a() {
|
||||
return this.drawable;
|
||||
}
|
||||
|
||||
public RecoloredDrawable(Drawable drawable, int i) {
|
||||
this(drawable, new ColorStateList(new int[][]{new int[0]}, new int[]{i}));
|
||||
}
|
||||
|
||||
public RecoloredDrawable() {
|
||||
this.c = 255;
|
||||
this.d = 255;
|
||||
}
|
||||
}
|
||||
@@ -8,19 +8,21 @@ import ru.vtosters.lite.utils.ThemesUtils;
|
||||
public class ToolbarHook implements BaseHook {
|
||||
@Override
|
||||
public void inject(View view, int i, boolean z) {
|
||||
|
||||
if (view instanceof Toolbar) {
|
||||
var color = (ThemesUtils.isMilkshake() && !ThemesUtils.isDarkTheme()) ? ThemesUtils.getAccentColor() : ThemesUtils.getHeaderText();
|
||||
var menu = ((Toolbar) view).getMenu();
|
||||
for (int j = 0; j < menu.size(); ++j) {
|
||||
var item = menu.getItem(j);
|
||||
var icon = item.getIcon();
|
||||
if (icon instanceof RecoloredDrawable)
|
||||
((RecoloredDrawable) icon).a(color);
|
||||
else
|
||||
icon = new RecoloredDrawable(icon, color);
|
||||
item.setIcon(icon);
|
||||
if (icon != null) {
|
||||
if (icon instanceof RecoloredDrawable)
|
||||
((RecoloredDrawable) icon).a(color);
|
||||
else
|
||||
icon = new RecoloredDrawable(icon, color);
|
||||
item.setIcon(icon);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,9 +19,8 @@ public class SSFSUtils {
|
||||
"&secret=" + AccountManagerUtils.getUserSecret() +
|
||||
"&proxy=" + getUserProxy() +
|
||||
"&lang=" + getLocale() +
|
||||
"&vt=1&vksans=" + isVKSansEnabled() +
|
||||
"&vt_version=" + getBuildNumber() +
|
||||
"&useragent=" + Base64Utils.encodeValue(Base64Utils.encode(Network.l.c().a()) +
|
||||
"&vt=1" +
|
||||
"&useragent=" + Base64Utils.encodeValue(Base64Utils.encode(Network.l.c().a())) +
|
||||
"&vt_debug=" + isDEVModEnabled();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,389 +0,0 @@
|
||||
.class public Lcom/vk/core/drawable/RecoloredDrawable;
|
||||
.super Landroid/graphics/drawable/Drawable;
|
||||
.source "RecoloredDrawable.java"
|
||||
|
||||
# interfaces
|
||||
.implements Landroid/graphics/drawable/Drawable$Callback;
|
||||
|
||||
|
||||
# instance fields
|
||||
.field private a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
.field private b:Landroid/content/res/ColorStateList;
|
||||
|
||||
.field private c:I
|
||||
|
||||
.field private d:I
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>()V
|
||||
.locals 1
|
||||
|
||||
.line 9
|
||||
invoke-direct {p0}, Landroid/graphics/drawable/Drawable;-><init>()V
|
||||
|
||||
const/16 v0, 0xff
|
||||
|
||||
.line 10
|
||||
iput v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->c:I
|
||||
|
||||
.line 11
|
||||
iput v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->d:I
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public constructor <init>(Landroid/graphics/drawable/Drawable;I)V
|
||||
.locals 5
|
||||
|
||||
.line 8
|
||||
new-instance v0, Landroid/content/res/ColorStateList;
|
||||
|
||||
const/4 v1, 0x1
|
||||
|
||||
new-array v2, v1, [[I
|
||||
|
||||
const/4 v3, 0x0
|
||||
|
||||
new-array v4, v3, [I
|
||||
|
||||
aput-object v4, v2, v3
|
||||
|
||||
new-array v1, v1, [I
|
||||
|
||||
aput p2, v1, v3
|
||||
|
||||
invoke-direct {v0, v2, v1}, Landroid/content/res/ColorStateList;-><init>([[I[I)V
|
||||
|
||||
invoke-direct {p0, p1, v0}, Lcom/vk/core/drawable/RecoloredDrawable;-><init>(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public constructor <init>(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)V
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-direct {p0}, Landroid/graphics/drawable/Drawable;-><init>()V
|
||||
|
||||
const/16 v0, 0xff
|
||||
|
||||
.line 2
|
||||
iput v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->c:I
|
||||
|
||||
.line 3
|
||||
iput v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->d:I
|
||||
|
||||
.line 4
|
||||
invoke-virtual {p1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
iput-object p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
.line 5
|
||||
iget-object p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {p1, p0}, Landroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V
|
||||
|
||||
invoke-static {p2}, Lru/vtosters/lite/themes/utils/RecolorUtils;->themeCSL(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList;
|
||||
|
||||
move-result-object p2
|
||||
|
||||
.line 6
|
||||
iput-object p2, p0, Lcom/vk/core/drawable/RecoloredDrawable;->b:Landroid/content/res/ColorStateList;
|
||||
|
||||
const/4 p1, 0x0
|
||||
|
||||
new-array p1, p1, [I
|
||||
|
||||
.line 7
|
||||
invoke-virtual {p0, p1}, Lcom/vk/core/drawable/RecoloredDrawable;->onStateChange([I)Z
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public a()Landroid/graphics/drawable/Drawable;
|
||||
.locals 1
|
||||
|
||||
.line 5
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
return-object v0
|
||||
.end method
|
||||
|
||||
.method public a(I)V
|
||||
.locals 5
|
||||
|
||||
.line 1
|
||||
new-instance v0, Landroid/content/res/ColorStateList;
|
||||
|
||||
const/4 v1, 0x1
|
||||
|
||||
new-array v2, v1, [[I
|
||||
|
||||
const/4 v3, 0x0
|
||||
|
||||
new-array v4, v3, [I
|
||||
|
||||
aput-object v4, v2, v3
|
||||
|
||||
new-array v1, v1, [I
|
||||
|
||||
aput p1, v1, v3
|
||||
|
||||
invoke-direct {v0, v2, v1}, Landroid/content/res/ColorStateList;-><init>([[I[I)V
|
||||
|
||||
invoke-virtual {p0, v0}, Lcom/vk/core/drawable/RecoloredDrawable;->a(Landroid/content/res/ColorStateList;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public a(Landroid/content/res/ColorStateList;)V
|
||||
.locals 0
|
||||
|
||||
.line 2
|
||||
iput-object p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->b:Landroid/content/res/ColorStateList;
|
||||
|
||||
.line 3
|
||||
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getState()[I
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-virtual {p0, p1}, Lcom/vk/core/drawable/RecoloredDrawable;->onStateChange([I)Z
|
||||
|
||||
.line 4
|
||||
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->invalidateSelf()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public draw(Landroid/graphics/Canvas;)V
|
||||
.locals 1
|
||||
.param p1 # Landroid/graphics/Canvas;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public getIntrinsicHeight()I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
|
||||
|
||||
move-result v0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public getIntrinsicWidth()I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
|
||||
|
||||
move-result v0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public getOpacity()I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
|
||||
|
||||
move-result v0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
|
||||
.locals 0
|
||||
.param p1 # Landroid/graphics/drawable/Drawable;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->invalidateSelf()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public isStateful()Z
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->b:Landroid/content/res/ColorStateList;
|
||||
|
||||
invoke-virtual {v0}, Landroid/content/res/ColorStateList;->isStateful()Z
|
||||
|
||||
move-result v0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method protected onStateChange([I)Z
|
||||
.locals 6
|
||||
|
||||
.line 1
|
||||
invoke-super {p0, p1}, Landroid/graphics/drawable/Drawable;->onStateChange([I)Z
|
||||
|
||||
.line 2
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->b:Landroid/content/res/ColorStateList;
|
||||
|
||||
invoke-virtual {v0}, Landroid/content/res/ColorStateList;->getDefaultColor()I
|
||||
|
||||
move-result v1
|
||||
|
||||
invoke-virtual {v0, p1, v1}, Landroid/content/res/ColorStateList;->getColorForState([II)I
|
||||
|
||||
move-result v0
|
||||
|
||||
.line 3
|
||||
iget-object v1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
sget-object v2, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode;
|
||||
|
||||
invoke-virtual {v1, v0, v2}, Landroid/graphics/drawable/Drawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
|
||||
|
||||
.line 4
|
||||
array-length v0, p1
|
||||
|
||||
const/4 v1, 0x0
|
||||
|
||||
const/4 v2, 0x0
|
||||
|
||||
:goto_0
|
||||
const/4 v3, 0x1
|
||||
|
||||
if-ge v2, v0, :cond_1
|
||||
|
||||
aget v4, p1, v2
|
||||
|
||||
const v5, 0x10100a1
|
||||
|
||||
if-ne v4, v5, :cond_0
|
||||
|
||||
const/4 v1, 0x1
|
||||
|
||||
goto :goto_1
|
||||
|
||||
:cond_0
|
||||
add-int/lit8 v2, v2, 0x1
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 5
|
||||
:cond_1
|
||||
:goto_1
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setState([I)Z
|
||||
|
||||
.line 6
|
||||
iget-object p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
if-eqz v1, :cond_2
|
||||
|
||||
iget v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->c:I
|
||||
|
||||
goto :goto_2
|
||||
|
||||
:cond_2
|
||||
iget v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->d:I
|
||||
|
||||
:goto_2
|
||||
invoke-virtual {p1, v0}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
|
||||
|
||||
return v3
|
||||
.end method
|
||||
|
||||
.method public scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V
|
||||
.locals 0
|
||||
.param p1 # Landroid/graphics/drawable/Drawable;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
.param p2 # Ljava/lang/Runnable;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0, p2, p3, p4}, Landroid/graphics/drawable/Drawable;->scheduleSelf(Ljava/lang/Runnable;J)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public setAlpha(I)V
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iput p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->c:I
|
||||
|
||||
.line 2
|
||||
iput p1, p0, Lcom/vk/core/drawable/RecoloredDrawable;->d:I
|
||||
|
||||
.line 3
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public setBounds(IIII)V
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-super {p0, p1, p2, p3, p4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
|
||||
|
||||
.line 2
|
||||
iget-object v0, p0, Lcom/vk/core/drawable/RecoloredDrawable;->a:Landroid/graphics/drawable/Drawable;
|
||||
|
||||
invoke-virtual {v0, p1, p2, p3, p4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public setColorFilter(Landroid/graphics/ColorFilter;)V
|
||||
.locals 0
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
|
||||
.locals 0
|
||||
.param p1 # Landroid/graphics/drawable/Drawable;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
.param p2 # Ljava/lang/Runnable;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0, p2}, Landroid/graphics/drawable/Drawable;->unscheduleSelf(Ljava/lang/Runnable;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
Reference in New Issue
Block a user