CrackMe.apk
Download file
package com.google.android.material.navigation;
import android.app.Activity;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.InsetDrawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewTreeObserver;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.view.SupportMenuInflater;
import androidx.appcompat.view.menu.MenuBuilder;
import androidx.appcompat.view.menu.MenuItemImpl;
import androidx.appcompat.widget.TintTypedArray;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.customview.view.AbsSavedState;
import com.google.android.material.R;
import com.google.android.material.internal.NavigationMenu;
import com.google.android.material.internal.NavigationMenuPresenter;
import com.google.android.material.internal.ScrimInsetsFrameLayout;
import com.google.android.material.internal.ThemeEnforcement;
import com.google.android.material.resources.MaterialResources;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.shape.MaterialShapeUtils;
import com.google.android.material.shape.ShapeAppearanceModel;
public class NavigationView extends ScrimInsetsFrameLayout {
private static final int[] CHECKED_STATE_SET = {16842912};
private static final int[] DISABLED_STATE_SET = {-16842910};
private static final int PRESENTER_NAVIGATION_VIEW_ID = 1;
OnNavigationItemSelectedListener listener;
private final int maxWidth;
private final NavigationMenu menu;
private MenuInflater menuInflater;
private ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener;
/* access modifiers changed from: private */
public final NavigationMenuPresenter presenter;
/* access modifiers changed from: private */
public final int[] tmpLocation;
public interface OnNavigationItemSelectedListener {
boolean onNavigationItemSelected(MenuItem menuItem);
}
public NavigationView(Context context) {
this(context, (AttributeSet) null);
}
public NavigationView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, R.attr.navigationViewStyle);
}
public NavigationView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
ColorStateList colorStateList;
boolean z;
int i2;
NavigationMenuPresenter navigationMenuPresenter = new NavigationMenuPresenter();
this.presenter = navigationMenuPresenter;
this.tmpLocation = new int[2];
NavigationMenu navigationMenu = new NavigationMenu(context);
this.menu = navigationMenu;
TintTypedArray obtainTintedStyledAttributes = ThemeEnforcement.obtainTintedStyledAttributes(context, attributeSet, R.styleable.NavigationView, i, R.style.Widget_Design_NavigationView, new int[0]);
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_android_background)) {
ViewCompat.setBackground(this, obtainTintedStyledAttributes.getDrawable(R.styleable.NavigationView_android_background));
}
if (getBackground() == null || (getBackground() instanceof ColorDrawable)) {
Drawable background = getBackground();
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable();
if (background instanceof ColorDrawable) {
materialShapeDrawable.setFillColor(ColorStateList.valueOf(((ColorDrawable) background).getColor()));
}
materialShapeDrawable.initializeElevationOverlay(context);
ViewCompat.setBackground(this, materialShapeDrawable);
}
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_elevation)) {
setElevation((float) obtainTintedStyledAttributes.getDimensionPixelSize(R.styleable.NavigationView_elevation, 0));
}
setFitsSystemWindows(obtainTintedStyledAttributes.getBoolean(R.styleable.NavigationView_android_fitsSystemWindows, false));
this.maxWidth = obtainTintedStyledAttributes.getDimensionPixelSize(R.styleable.NavigationView_android_maxWidth, 0);
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_itemIconTint)) {
colorStateList = obtainTintedStyledAttributes.getColorStateList(R.styleable.NavigationView_itemIconTint);
} else {
colorStateList = createDefaultColorStateList(16842808);
}
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_itemTextAppearance)) {
i2 = obtainTintedStyledAttributes.getResourceId(R.styleable.NavigationView_itemTextAppearance, 0);
z = true;
} else {
i2 = 0;
z = false;
}
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_itemIconSize)) {
setItemIconSize(obtainTintedStyledAttributes.getDimensionPixelSize(R.styleable.NavigationView_itemIconSize, 0));
}
ColorStateList colorStateList2 = obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_itemTextColor) ? obtainTintedStyledAttributes.getColorStateList(R.styleable.NavigationView_itemTextColor) : null;
if (!z && colorStateList2 == null) {
colorStateList2 = createDefaultColorStateList(16842806);
}
Drawable drawable = obtainTintedStyledAttributes.getDrawable(R.styleable.NavigationView_itemBackground);
if (drawable == null && hasShapeAppearance(obtainTintedStyledAttributes)) {
drawable = createDefaultItemBackground(obtainTintedStyledAttributes);
}
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_itemHorizontalPadding)) {
navigationMenuPresenter.setItemHorizontalPadding(obtainTintedStyledAttributes.getDimensionPixelSize(R.styleable.NavigationView_itemHorizontalPadding, 0));
}
int dimensionPixelSize = obtainTintedStyledAttributes.getDimensionPixelSize(R.styleable.NavigationView_itemIconPadding, 0);
setItemMaxLines(obtainTintedStyledAttributes.getInt(R.styleable.NavigationView_itemMaxLines, 1));
navigationMenu.setCallback(new MenuBuilder.Callback() {
public void onMenuModeChange(MenuBuilder menuBuilder) {
}
public boolean onMenuItemSelected(MenuBuilder menuBuilder, MenuItem menuItem) {
return NavigationView.this.listener != null && NavigationView.this.listener.onNavigationItemSelected(menuItem);
}
});
navigationMenuPresenter.setId(1);
navigationMenuPresenter.initForMenu(context, navigationMenu);
navigationMenuPresenter.setItemIconTintList(colorStateList);
navigationMenuPresenter.setOverScrollMode(getOverScrollMode());
if (z) {
navigationMenuPresenter.setItemTextAppearance(i2);
}
navigationMenuPresenter.setItemTextColor(colorStateList2);
navigationMenuPresenter.setItemBackground(drawable);
navigationMenuPresenter.setItemIconPadding(dimensionPixelSize);
navigationMenu.addMenuPresenter(navigationMenuPresenter);
addView((View) navigationMenuPresenter.getMenuView(this));
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_menu)) {
inflateMenu(obtainTintedStyledAttributes.getResourceId(R.styleable.NavigationView_menu, 0));
}
if (obtainTintedStyledAttributes.hasValue(R.styleable.NavigationView_headerLayout)) {
inflateHeaderView(obtainTintedStyledAttributes.getResourceId(R.styleable.NavigationView_headerLayout, 0));
}
obtainTintedStyledAttributes.recycle();
setupInsetScrimsListener();
}
public void setOverScrollMode(int i) {
super.setOverScrollMode(i);
NavigationMenuPresenter navigationMenuPresenter = this.presenter;
if (navigationMenuPresenter != null) {
navigationMenuPresenter.setOverScrollMode(i);
}
}
private boolean hasShapeAppearance(TintTypedArray tintTypedArray) {
return tintTypedArray.hasValue(R.styleable.NavigationView_itemShapeAppearance) || tintTypedArray.hasValue(R.styleable.NavigationView_itemShapeAppearanceOverlay);
}
/* access modifiers changed from: protected */
public void onAttachedToWindow() {
super.onAttachedToWindow();
MaterialShapeUtils.setParentAbsoluteElevation(this);
}
public void setElevation(float f) {
if (Build.VERSION.SDK_INT >= 21) {
super.setElevation(f);
}
MaterialShapeUtils.setElevation(this, f);
}
private final Drawable createDefaultItemBackground(TintTypedArray tintTypedArray) {
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(ShapeAppearanceModel.builder(getContext(), tintTypedArray.getResourceId(R.styleable.NavigationView_itemShapeAppearance, 0), tintTypedArray.getResourceId(R.styleable.NavigationView_itemShapeAppearanceOverlay, 0)).build());
materialShapeDrawable.setFillColor(MaterialResources.getColorStateList(getContext(), tintTypedArray, R.styleable.NavigationView_itemShapeFillColor));
return new InsetDrawable(materialShapeDrawable, tintTypedArray.getDimensionPixelSize(R.styleable.NavigationView_itemShapeInsetStart, 0), tintTypedArray.getDimensionPixelSize(R.styleable.NavigationView_itemShapeInsetTop, 0), tintTypedArray.getDimensionPixelSize(R.styleable.NavigationView_itemShapeInsetEnd, 0), tintTypedArray.getDimensionPixelSize(R.styleable.NavigationView_itemShapeInsetBottom, 0));
}
/* access modifiers changed from: protected */
public Parcelable onSaveInstanceState() {
SavedState savedState = new SavedState(super.onSaveInstanceState());
savedState.menuState = new Bundle();
this.menu.savePresenterStates(savedState.menuState);
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());
this.menu.restorePresenterStates(savedState.menuState);
}
public void setNavigationItemSelectedListener(OnNavigationItemSelectedListener onNavigationItemSelectedListener) {
this.listener = onNavigationItemSelectedListener;
}
/* access modifiers changed from: protected */
public void onMeasure(int i, int i2) {
int mode = View.MeasureSpec.getMode(i);
if (mode == Integer.MIN_VALUE) {
i = View.MeasureSpec.makeMeasureSpec(Math.min(View.MeasureSpec.getSize(i), this.maxWidth), 1073741824);
} else if (mode == 0) {
i = View.MeasureSpec.makeMeasureSpec(this.maxWidth, 1073741824);
}
super.onMeasure(i, i2);
}
/* access modifiers changed from: protected */
public void onInsetsChanged(WindowInsetsCompat windowInsetsCompat) {
this.presenter.dispatchApplyWindowInsets(windowInsetsCompat);
}
public void inflateMenu(int i) {
this.presenter.setUpdateSuspended(true);
getMenuInflater().inflate(i, this.menu);
this.presenter.setUpdateSuspended(false);
this.presenter.updateMenuView(false);
}
public Menu getMenu() {
return this.menu;
}
public View inflateHeaderView(int i) {
return this.presenter.inflateHeaderView(i);
}
public void addHeaderView(View view) {
this.presenter.addHeaderView(view);
}
public void removeHeaderView(View view) {
this.presenter.removeHeaderView(view);
}
public int getHeaderCount() {
return this.presenter.getHeaderCount();
}
public View getHeaderView(int i) {
return this.presenter.getHeaderView(i);
}
public ColorStateList getItemIconTintList() {
return this.presenter.getItemTintList();
}
public void setItemIconTintList(ColorStateList colorStateList) {
this.presenter.setItemIconTintList(colorStateList);
}
public ColorStateList getItemTextColor() {
return this.presenter.getItemTextColor();
}
public void setItemTextColor(ColorStateList colorStateList) {
this.presenter.setItemTextColor(colorStateList);
}
public Drawable getItemBackground() {
return this.presenter.getItemBackground();
}
public void setItemBackgroundResource(int i) {
setItemBackground(ContextCompat.getDrawable(getContext(), i));
}
public void setItemBackground(Drawable drawable) {
this.presenter.setItemBackground(drawable);
}
public int getItemHorizontalPadding() {
return this.presenter.getItemHorizontalPadding();
}
public void setItemHorizontalPadding(int i) {
this.presenter.setItemHorizontalPadding(i);
}
public void setItemHorizontalPaddingResource(int i) {
this.presenter.setItemHorizontalPadding(getResources().getDimensionPixelSize(i));
}
public int getItemIconPadding() {
return this.presenter.getItemIconPadding();
}
public void setItemIconPadding(int i) {
this.presenter.setItemIconPadding(i);
}
public void setItemIconPaddingResource(int i) {
this.presenter.setItemIconPadding(getResources().getDimensionPixelSize(i));
}
public void setCheckedItem(int i) {
MenuItem findItem = this.menu.findItem(i);
if (findItem != null) {
this.presenter.setCheckedItem((MenuItemImpl) findItem);
}
}
public void setCheckedItem(MenuItem menuItem) {
MenuItem findItem = this.menu.findItem(menuItem.getItemId());
if (findItem != null) {
this.presenter.setCheckedItem((MenuItemImpl) findItem);
return;
}
throw new IllegalArgumentException("Called setCheckedItem(MenuItem) with an item that is not in the current menu.");
}
public MenuItem getCheckedItem() {
return this.presenter.getCheckedItem();
}
public void setItemTextAppearance(int i) {
this.presenter.setItemTextAppearance(i);
}
public void setItemIconSize(int i) {
this.presenter.setItemIconSize(i);
}
public void setItemMaxLines(int i) {
this.presenter.setItemMaxLines(i);
}
public int getItemMaxLines() {
return this.presenter.getItemMaxLines();
}
private MenuInflater getMenuInflater() {
if (this.menuInflater == null) {
this.menuInflater = new SupportMenuInflater(getContext());
}
return this.menuInflater;
}
private ColorStateList createDefaultColorStateList(int i) {
TypedValue typedValue = new TypedValue();
if (!getContext().getTheme().resolveAttribute(i, typedValue, true)) {
return null;
}
ColorStateList colorStateList = AppCompatResources.getColorStateList(getContext(), typedValue.resourceId);
if (!getContext().getTheme().resolveAttribute(androidx.appcompat.R.attr.colorPrimary, typedValue, true)) {
return null;
}
int i2 = typedValue.data;
int defaultColor = colorStateList.getDefaultColor();
int[] iArr = DISABLED_STATE_SET;
return new ColorStateList(new int[][]{iArr, CHECKED_STATE_SET, EMPTY_STATE_SET}, new int[]{colorStateList.getColorForState(iArr, defaultColor), i2, defaultColor});
}
/* access modifiers changed from: protected */
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (Build.VERSION.SDK_INT < 16) {
getViewTreeObserver().removeGlobalOnLayoutListener(this.onGlobalLayoutListener);
} else {
getViewTreeObserver().removeOnGlobalLayoutListener(this.onGlobalLayoutListener);
}
}
private void setupInsetScrimsListener() {
this.onGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
NavigationView navigationView = NavigationView.this;
navigationView.getLocationOnScreen(navigationView.tmpLocation);
boolean z = true;
boolean z2 = NavigationView.this.tmpLocation[1] == 0;
NavigationView.this.presenter.setBehindStatusBar(z2);
NavigationView.this.setDrawTopInsetForeground(z2);
Context context = NavigationView.this.getContext();
if ((context instanceof Activity) && Build.VERSION.SDK_INT >= 21) {
Activity activity = (Activity) context;
boolean z3 = activity.findViewById(16908290).getHeight() == NavigationView.this.getHeight();
boolean z4 = Color.alpha(activity.getWindow().getNavigationBarColor()) != 0;
NavigationView navigationView2 = NavigationView.this;
if (!z3 || !z4) {
z = false;
}
navigationView2.setDrawBottomInsetForeground(z);
}
}
};
getViewTreeObserver().addOnGlobalLayoutListener(this.onGlobalLayoutListener);
}
public 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];
}
};
public Bundle menuState;
public SavedState(Parcel parcel, ClassLoader classLoader) {
super(parcel, classLoader);
this.menuState = parcel.readBundle(classLoader);
}
public SavedState(Parcelable parcelable) {
super(parcelable);
}
public void writeToParcel(Parcel parcel, int i) {
super.writeToParcel(parcel, i);
parcel.writeBundle(this.menuState);
}
}
}
Download file