CrackMe.apk
Download file
package androidx.core.widget;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.Log;
import android.widget.CompoundButton;
import java.lang.reflect.Field;
public final class CompoundButtonCompat {
private static final String TAG = "CompoundButtonCompat";
private static Field sButtonDrawableField;
private static boolean sButtonDrawableFieldFetched;
private CompoundButtonCompat() {
}
public static void setButtonTintList(CompoundButton compoundButton, ColorStateList colorStateList) {
if (Build.VERSION.SDK_INT >= 21) {
compoundButton.setButtonTintList(colorStateList);
} else if (compoundButton instanceof TintableCompoundButton) {
((TintableCompoundButton) compoundButton).setSupportButtonTintList(colorStateList);
}
}
public static ColorStateList getButtonTintList(CompoundButton compoundButton) {
if (Build.VERSION.SDK_INT >= 21) {
return compoundButton.getButtonTintList();
}
if (compoundButton instanceof TintableCompoundButton) {
return ((TintableCompoundButton) compoundButton).getSupportButtonTintList();
}
return null;
}
public static void setButtonTintMode(CompoundButton compoundButton, PorterDuff.Mode mode) {
if (Build.VERSION.SDK_INT >= 21) {
compoundButton.setButtonTintMode(mode);
} else if (compoundButton instanceof TintableCompoundButton) {
((TintableCompoundButton) compoundButton).setSupportButtonTintMode(mode);
}
}
public static PorterDuff.Mode getButtonTintMode(CompoundButton compoundButton) {
if (Build.VERSION.SDK_INT >= 21) {
return compoundButton.getButtonTintMode();
}
if (compoundButton instanceof TintableCompoundButton) {
return ((TintableCompoundButton) compoundButton).getSupportButtonTintMode();
}
return null;
}
public static Drawable getButtonDrawable(CompoundButton compoundButton) {
if (Build.VERSION.SDK_INT >= 23) {
return compoundButton.getButtonDrawable();
}
if (!sButtonDrawableFieldFetched) {
try {
Field declaredField = CompoundButton.class.getDeclaredField("mButtonDrawable");
sButtonDrawableField = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException e) {
Log.i(TAG, "Failed to retrieve mButtonDrawable field", e);
}
sButtonDrawableFieldFetched = true;
}
Field field = sButtonDrawableField;
if (field != null) {
try {
return (Drawable) field.get(compoundButton);
} catch (IllegalAccessException e2) {
Log.i(TAG, "Failed to get button drawable via reflection", e2);
sButtonDrawableField = null;
}
}
return null;
}
}
Download file