CrackMe.apk
Download file
package com.google.android.material.internal;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Checkable;
import androidx.appcompat.R;
import androidx.appcompat.widget.AppCompatImageButton;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.customview.view.AbsSavedState;
public class CheckableImageButton extends AppCompatImageButton implements Checkable {
private static final int[] DRAWABLE_STATE_CHECKED = {16842912};
private boolean checkable;
private boolean checked;
private boolean pressable;
public CheckableImageButton(Context context) {
this(context, (AttributeSet) null);
}
public CheckableImageButton(Context context, AttributeSet attributeSet) {
this(context, attributeSet, R.attr.imageButtonStyle);
}
public CheckableImageButton(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.checkable = true;
this.pressable = true;
ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
super.onInitializeAccessibilityEvent(view, accessibilityEvent);
accessibilityEvent.setChecked(CheckableImageButton.this.isChecked());
}
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
accessibilityNodeInfoCompat.setCheckable(CheckableImageButton.this.isCheckable());
accessibilityNodeInfoCompat.setChecked(CheckableImageButton.this.isChecked());
}
});
}
public void setChecked(boolean z) {
if (this.checkable && this.checked != z) {
this.checked = z;
refreshDrawableState();
sendAccessibilityEvent(2048);
}
}
public boolean isChecked() {
return this.checked;
}
public void toggle() {
setChecked(!this.checked);
}
public void setPressed(boolean z) {
if (this.pressable) {
super.setPressed(z);
}
}
public int[] onCreateDrawableState(int i) {
if (!this.checked) {
return super.onCreateDrawableState(i);
}
int[] iArr = DRAWABLE_STATE_CHECKED;
return mergeDrawableStates(super.onCreateDrawableState(i + iArr.length), iArr);
}
/* access modifiers changed from: protected */
public Parcelable onSaveInstanceState() {
SavedState savedState = new SavedState(super.onSaveInstanceState());
savedState.checked = this.checked;
return savedState;
}
/* access modifiers changed from: protected */
public void onRestoreInstanceState(Parcelable parcelable) {
if (!(parcelable instanceof SavedState)) {
super.onRestoreInstanceState(parcelable);
return;
}
SavedState savedState = (SavedState) parcelable;
super.onRestoreInstanceState(savedState.getSuperState());
setChecked(savedState.checked);
}
public void setCheckable(boolean z) {
if (this.checkable != z) {
this.checkable = z;
sendAccessibilityEvent(0);
}
}
public boolean isCheckable() {
return this.checkable;
}
public void setPressable(boolean z) {
this.pressable = z;
}
public boolean isPressable() {
return this.pressable;
}
static class SavedState extends AbsSavedState {
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() {
public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
return new SavedState(parcel, classLoader);
}
public SavedState createFromParcel(Parcel parcel) {
return new SavedState(parcel, (ClassLoader) null);
}
public SavedState[] newArray(int i) {
return new SavedState[i];
}
};
boolean checked;
public SavedState(Parcelable parcelable) {
super(parcelable);
}
public SavedState(Parcel parcel, ClassLoader classLoader) {
super(parcel, classLoader);
readFromParcel(parcel);
}
public void writeToParcel(Parcel parcel, int i) {
super.writeToParcel(parcel, i);
parcel.writeInt(this.checked ? 1 : 0);
}
private void readFromParcel(Parcel parcel) {
boolean z = true;
if (parcel.readInt() != 1) {
z = false;
}
this.checked = z;
}
}
}
Download file