CrackMe.apk
Download file
package com.google.android.material.chip;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import com.google.android.material.R;
import com.google.android.material.internal.FlowLayout;
import com.google.android.material.internal.ThemeEnforcement;
public class ChipGroup extends FlowLayout {
/* access modifiers changed from: private */
public int checkedId;
/* access modifiers changed from: private */
public final CheckedStateTracker checkedStateTracker;
private int chipSpacingHorizontal;
private int chipSpacingVertical;
private OnCheckedChangeListener onCheckedChangeListener;
private PassThroughHierarchyChangeListener passThroughListener;
/* access modifiers changed from: private */
public boolean protectFromCheckedChange;
/* access modifiers changed from: private */
public boolean singleSelection;
public interface OnCheckedChangeListener {
void onCheckedChanged(ChipGroup chipGroup, int i);
}
public static class LayoutParams extends ViewGroup.MarginLayoutParams {
public LayoutParams(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public LayoutParams(ViewGroup.LayoutParams layoutParams) {
super(layoutParams);
}
public LayoutParams(int i, int i2) {
super(i, i2);
}
public LayoutParams(ViewGroup.MarginLayoutParams marginLayoutParams) {
super(marginLayoutParams);
}
}
public ChipGroup(Context context) {
this(context, (AttributeSet) null);
}
public ChipGroup(Context context, AttributeSet attributeSet) {
this(context, attributeSet, R.attr.chipGroupStyle);
}
public ChipGroup(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.checkedStateTracker = new CheckedStateTracker();
this.passThroughListener = new PassThroughHierarchyChangeListener();
this.checkedId = -1;
this.protectFromCheckedChange = false;
TypedArray obtainStyledAttributes = ThemeEnforcement.obtainStyledAttributes(context, attributeSet, R.styleable.ChipGroup, i, R.style.Widget_MaterialComponents_ChipGroup, new int[0]);
int dimensionPixelOffset = obtainStyledAttributes.getDimensionPixelOffset(R.styleable.ChipGroup_chipSpacing, 0);
setChipSpacingHorizontal(obtainStyledAttributes.getDimensionPixelOffset(R.styleable.ChipGroup_chipSpacingHorizontal, dimensionPixelOffset));
setChipSpacingVertical(obtainStyledAttributes.getDimensionPixelOffset(R.styleable.ChipGroup_chipSpacingVertical, dimensionPixelOffset));
setSingleLine(obtainStyledAttributes.getBoolean(R.styleable.ChipGroup_singleLine, false));
setSingleSelection(obtainStyledAttributes.getBoolean(R.styleable.ChipGroup_singleSelection, false));
int resourceId = obtainStyledAttributes.getResourceId(R.styleable.ChipGroup_checkedChip, -1);
if (resourceId != -1) {
this.checkedId = resourceId;
}
obtainStyledAttributes.recycle();
super.setOnHierarchyChangeListener(this.passThroughListener);
}
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attributeSet) {
return new LayoutParams(getContext(), attributeSet);
}
/* access modifiers changed from: protected */
public ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) {
return new LayoutParams(layoutParams);
}
/* access modifiers changed from: protected */
public ViewGroup.LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(-2, -2);
}
/* access modifiers changed from: protected */
public boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) {
return super.checkLayoutParams(layoutParams) && (layoutParams instanceof LayoutParams);
}
public void setOnHierarchyChangeListener(ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener) {
ViewGroup.OnHierarchyChangeListener unused = this.passThroughListener.onHierarchyChangeListener = onHierarchyChangeListener;
}
/* access modifiers changed from: protected */
public void onFinishInflate() {
super.onFinishInflate();
int i = this.checkedId;
if (i != -1) {
setCheckedStateForView(i, true);
setCheckedId(this.checkedId);
}
}
public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) {
if (view instanceof Chip) {
Chip chip = (Chip) view;
if (chip.isChecked()) {
int i2 = this.checkedId;
if (i2 != -1 && this.singleSelection) {
setCheckedStateForView(i2, false);
}
setCheckedId(chip.getId());
}
}
super.addView(view, i, layoutParams);
}
@Deprecated
public void setDividerDrawableHorizontal(Drawable drawable) {
throw new UnsupportedOperationException("Changing divider drawables have no effect. ChipGroup do not use divider drawables as spacing.");
}
@Deprecated
public void setDividerDrawableVertical(Drawable drawable) {
throw new UnsupportedOperationException("Changing divider drawables have no effect. ChipGroup do not use divider drawables as spacing.");
}
@Deprecated
public void setShowDividerHorizontal(int i) {
throw new UnsupportedOperationException("Changing divider modes has no effect. ChipGroup do not use divider drawables as spacing.");
}
@Deprecated
public void setShowDividerVertical(int i) {
throw new UnsupportedOperationException("Changing divider modes has no effect. ChipGroup do not use divider drawables as spacing.");
}
@Deprecated
public void setFlexWrap(int i) {
throw new UnsupportedOperationException("Changing flex wrap not allowed. ChipGroup exposes a singleLine attribute instead.");
}
public void check(int i) {
int i2 = this.checkedId;
if (i != i2) {
if (i2 != -1 && this.singleSelection) {
setCheckedStateForView(i2, false);
}
if (i != -1) {
setCheckedStateForView(i, true);
}
setCheckedId(i);
}
}
public int getCheckedChipId() {
if (this.singleSelection) {
return this.checkedId;
}
return -1;
}
public void clearCheck() {
this.protectFromCheckedChange = true;
for (int i = 0; i < getChildCount(); i++) {
View childAt = getChildAt(i);
if (childAt instanceof Chip) {
((Chip) childAt).setChecked(false);
}
}
this.protectFromCheckedChange = false;
setCheckedId(-1);
}
public void setOnCheckedChangeListener(OnCheckedChangeListener onCheckedChangeListener2) {
this.onCheckedChangeListener = onCheckedChangeListener2;
}
/* access modifiers changed from: private */
public void setCheckedId(int i) {
this.checkedId = i;
OnCheckedChangeListener onCheckedChangeListener2 = this.onCheckedChangeListener;
if (onCheckedChangeListener2 != null && this.singleSelection) {
onCheckedChangeListener2.onCheckedChanged(this, i);
}
}
/* access modifiers changed from: private */
public void setCheckedStateForView(int i, boolean z) {
View findViewById = findViewById(i);
if (findViewById instanceof Chip) {
this.protectFromCheckedChange = true;
((Chip) findViewById).setChecked(z);
this.protectFromCheckedChange = false;
}
}
public void setChipSpacing(int i) {
setChipSpacingHorizontal(i);
setChipSpacingVertical(i);
}
public void setChipSpacingResource(int i) {
setChipSpacing(getResources().getDimensionPixelOffset(i));
}
public int getChipSpacingHorizontal() {
return this.chipSpacingHorizontal;
}
public void setChipSpacingHorizontal(int i) {
if (this.chipSpacingHorizontal != i) {
this.chipSpacingHorizontal = i;
setItemSpacing(i);
requestLayout();
}
}
public void setChipSpacingHorizontalResource(int i) {
setChipSpacingHorizontal(getResources().getDimensionPixelOffset(i));
}
public int getChipSpacingVertical() {
return this.chipSpacingVertical;
}
public void setChipSpacingVertical(int i) {
if (this.chipSpacingVertical != i) {
this.chipSpacingVertical = i;
setLineSpacing(i);
requestLayout();
}
}
public void setChipSpacingVerticalResource(int i) {
setChipSpacingVertical(getResources().getDimensionPixelOffset(i));
}
public boolean isSingleLine() {
return super.isSingleLine();
}
public void setSingleLine(boolean z) {
super.setSingleLine(z);
}
public void setSingleLine(int i) {
setSingleLine(getResources().getBoolean(i));
}
public boolean isSingleSelection() {
return this.singleSelection;
}
public void setSingleSelection(boolean z) {
if (this.singleSelection != z) {
this.singleSelection = z;
clearCheck();
}
}
public void setSingleSelection(int i) {
setSingleSelection(getResources().getBoolean(i));
}
private class CheckedStateTracker implements CompoundButton.OnCheckedChangeListener {
private CheckedStateTracker() {
}
public void onCheckedChanged(CompoundButton compoundButton, boolean z) {
if (!ChipGroup.this.protectFromCheckedChange) {
int id = compoundButton.getId();
if (z) {
if (!(ChipGroup.this.checkedId == -1 || ChipGroup.this.checkedId == id || !ChipGroup.this.singleSelection)) {
ChipGroup chipGroup = ChipGroup.this;
chipGroup.setCheckedStateForView(chipGroup.checkedId, false);
}
ChipGroup.this.setCheckedId(id);
} else if (ChipGroup.this.checkedId == id) {
ChipGroup.this.setCheckedId(-1);
}
}
}
}
private class PassThroughHierarchyChangeListener implements ViewGroup.OnHierarchyChangeListener {
/* access modifiers changed from: private */
public ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener;
private PassThroughHierarchyChangeListener() {
}
public void onChildViewAdded(View view, View view2) {
int i;
if (view == ChipGroup.this && (view2 instanceof Chip)) {
if (view2.getId() == -1) {
if (Build.VERSION.SDK_INT >= 17) {
i = View.generateViewId();
} else {
i = view2.hashCode();
}
view2.setId(i);
}
((Chip) view2).setOnCheckedChangeListenerInternal(ChipGroup.this.checkedStateTracker);
}
ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener2 = this.onHierarchyChangeListener;
if (onHierarchyChangeListener2 != null) {
onHierarchyChangeListener2.onChildViewAdded(view, view2);
}
}
public void onChildViewRemoved(View view, View view2) {
if (view == ChipGroup.this && (view2 instanceof Chip)) {
((Chip) view2).setOnCheckedChangeListenerInternal((CompoundButton.OnCheckedChangeListener) null);
}
ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener2 = this.onHierarchyChangeListener;
if (onHierarchyChangeListener2 != null) {
onHierarchyChangeListener2.onChildViewRemoved(view, view2);
}
}
}
}
Download file