CrackMe.apk
Download file
package com.google.android.material.badge;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.SparseArray;
import android.view.View;
import android.widget.FrameLayout;
import com.google.android.material.badge.BadgeDrawable;
import com.google.android.material.internal.ParcelableSparseArray;
public class BadgeUtils {
public static final boolean USE_COMPAT_PARENT = (Build.VERSION.SDK_INT < 18);
private BadgeUtils() {
}
public static void updateBadgeBounds(Rect rect, float f, float f2, float f3, float f4) {
rect.set((int) (f - f3), (int) (f2 - f4), (int) (f + f3), (int) (f2 + f4));
}
public static void attachBadgeDrawable(BadgeDrawable badgeDrawable, View view, FrameLayout frameLayout) {
setBadgeDrawableBounds(badgeDrawable, view, frameLayout);
if (USE_COMPAT_PARENT) {
frameLayout.setForeground(badgeDrawable);
} else {
view.getOverlay().add(badgeDrawable);
}
}
public static void detachBadgeDrawable(BadgeDrawable badgeDrawable, View view, FrameLayout frameLayout) {
if (badgeDrawable != null) {
if (USE_COMPAT_PARENT) {
frameLayout.setForeground((Drawable) null);
} else {
view.getOverlay().remove(badgeDrawable);
}
}
}
public static void setBadgeDrawableBounds(BadgeDrawable badgeDrawable, View view, FrameLayout frameLayout) {
Rect rect = new Rect();
(USE_COMPAT_PARENT ? frameLayout : view).getDrawingRect(rect);
badgeDrawable.setBounds(rect);
badgeDrawable.updateBadgeCoordinates(view, frameLayout);
}
public static ParcelableSparseArray createParcelableBadgeStates(SparseArray<BadgeDrawable> sparseArray) {
ParcelableSparseArray parcelableSparseArray = new ParcelableSparseArray();
int i = 0;
while (i < sparseArray.size()) {
int keyAt = sparseArray.keyAt(i);
BadgeDrawable valueAt = sparseArray.valueAt(i);
if (valueAt != null) {
parcelableSparseArray.put(keyAt, valueAt.getSavedState());
i++;
} else {
throw new IllegalArgumentException("badgeDrawable cannot be null");
}
}
return parcelableSparseArray;
}
public static SparseArray<BadgeDrawable> createBadgeDrawablesFromSavedStates(Context context, ParcelableSparseArray parcelableSparseArray) {
SparseArray<BadgeDrawable> sparseArray = new SparseArray<>(parcelableSparseArray.size());
int i = 0;
while (i < parcelableSparseArray.size()) {
int keyAt = parcelableSparseArray.keyAt(i);
BadgeDrawable.SavedState savedState = (BadgeDrawable.SavedState) parcelableSparseArray.valueAt(i);
if (savedState != null) {
sparseArray.put(keyAt, BadgeDrawable.createFromSavedState(context, savedState));
i++;
} else {
throw new IllegalArgumentException("BadgeDrawable's savedState cannot be null");
}
}
return sparseArray;
}
}
Download file