Initial commit
This commit is contained in:
99
sources/androidx/appcompat/widget/DrawableUtils.java
Normal file
99
sources/androidx/appcompat/widget/DrawableUtils.java
Normal file
@@ -0,0 +1,99 @@
|
||||
package androidx.appcompat.widget;
|
||||
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.DrawableContainer;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.graphics.drawable.InsetDrawable;
|
||||
import android.graphics.drawable.LayerDrawable;
|
||||
import android.graphics.drawable.ScaleDrawable;
|
||||
import android.os.Build;
|
||||
import androidx.appcompat.graphics.drawable.DrawableWrapper;
|
||||
import androidx.core.graphics.drawable.WrappedDrawable;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class DrawableUtils {
|
||||
static {
|
||||
new Rect();
|
||||
if (Build.VERSION.SDK_INT >= 18) {
|
||||
try {
|
||||
Class.forName("android.graphics.Insets");
|
||||
} catch (ClassNotFoundException unused) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
public static boolean a(Drawable drawable) {
|
||||
if (Build.VERSION.SDK_INT < 15 && (drawable instanceof InsetDrawable)) {
|
||||
return false;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT < 15 && (drawable instanceof GradientDrawable)) {
|
||||
return false;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT < 17 && (drawable instanceof LayerDrawable)) {
|
||||
return false;
|
||||
}
|
||||
if (!(drawable instanceof DrawableContainer)) {
|
||||
if (drawable instanceof WrappedDrawable) {
|
||||
return a(((WrappedDrawable) drawable).a());
|
||||
}
|
||||
if (drawable instanceof DrawableWrapper) {
|
||||
return a(((DrawableWrapper) drawable).a());
|
||||
}
|
||||
if (drawable instanceof ScaleDrawable) {
|
||||
return a(((ScaleDrawable) drawable).getDrawable());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Drawable.ConstantState constantState = drawable.getConstantState();
|
||||
if (!(constantState instanceof DrawableContainer.DrawableContainerState)) {
|
||||
return true;
|
||||
}
|
||||
for (Drawable drawable2 : ((DrawableContainer.DrawableContainerState) constantState).getChildren()) {
|
||||
if (!a(drawable2)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void b(Drawable drawable) {
|
||||
if (Build.VERSION.SDK_INT == 21 && "android.graphics.drawable.VectorDrawable".equals(drawable.getClass().getName())) {
|
||||
c(drawable);
|
||||
}
|
||||
}
|
||||
|
||||
private static void c(Drawable drawable) {
|
||||
int[] state = drawable.getState();
|
||||
if (state == null || state.length == 0) {
|
||||
drawable.setState(ThemeUtils.e);
|
||||
} else {
|
||||
drawable.setState(ThemeUtils.f);
|
||||
}
|
||||
drawable.setState(state);
|
||||
}
|
||||
|
||||
public static PorterDuff.Mode a(int i, PorterDuff.Mode mode) {
|
||||
if (i == 3) {
|
||||
return PorterDuff.Mode.SRC_OVER;
|
||||
}
|
||||
if (i == 5) {
|
||||
return PorterDuff.Mode.SRC_IN;
|
||||
}
|
||||
if (i != 9) {
|
||||
switch (i) {
|
||||
case 14:
|
||||
return PorterDuff.Mode.MULTIPLY;
|
||||
case 15:
|
||||
return PorterDuff.Mode.SCREEN;
|
||||
case 16:
|
||||
return PorterDuff.Mode.ADD;
|
||||
default:
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
return PorterDuff.Mode.SRC_ATOP;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user