550 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			550 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.google.android.material.navigation;
 | |
| 
 | |
| import android.R;
 | |
| import android.app.Activity;
 | |
| import android.content.Context;
 | |
| import android.content.res.ColorStateList;
 | |
| import android.graphics.Canvas;
 | |
| import android.graphics.Color;
 | |
| import android.graphics.Rect;
 | |
| import android.graphics.RectF;
 | |
| 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.Pair;
 | |
| import android.util.TypedValue;
 | |
| import android.view.Menu;
 | |
| import android.view.MenuInflater;
 | |
| import android.view.MenuItem;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import android.view.ViewParent;
 | |
| import android.view.ViewTreeObserver;
 | |
| import androidx.activity.BackEventCompat;
 | |
| import androidx.appcompat.content.res.AppCompatResources;
 | |
| import androidx.appcompat.view.SupportMenuInflater;
 | |
| import androidx.appcompat.view.menu.MenuItemImpl;
 | |
| import androidx.appcompat.widget.TintTypedArray;
 | |
| import androidx.constraintlayout.core.widgets.analyzer.BasicMeasure;
 | |
| import androidx.core.content.ContextCompat;
 | |
| import androidx.core.view.GravityCompat;
 | |
| import androidx.core.view.ViewCompat;
 | |
| import androidx.core.view.WindowInsetsCompat;
 | |
| import androidx.customview.view.AbsSavedState;
 | |
| import androidx.drawerlayout.widget.DrawerLayout;
 | |
| import com.google.android.material.canvas.CanvasCompat;
 | |
| import com.google.android.material.internal.ContextUtils;
 | |
| 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.WindowUtils;
 | |
| import com.google.android.material.motion.MaterialBackHandler;
 | |
| import com.google.android.material.motion.MaterialBackOrchestrator;
 | |
| import com.google.android.material.motion.MaterialSideContainerBackHelper;
 | |
| 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;
 | |
| import com.google.android.material.shape.ShapeableDelegate;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class NavigationView extends ScrimInsetsFrameLayout implements MaterialBackHandler {
 | |
|     private static final int PRESENTER_NAVIGATION_VIEW_ID = 1;
 | |
|     private final DrawerLayout.DrawerListener backDrawerListener;
 | |
|     private final MaterialBackOrchestrator backOrchestrator;
 | |
|     private boolean bottomInsetScrimEnabled;
 | |
|     private int drawerLayoutCornerSize;
 | |
|     OnNavigationItemSelectedListener listener;
 | |
|     private final int maxWidth;
 | |
|     private final NavigationMenu menu;
 | |
|     private MenuInflater menuInflater;
 | |
|     private ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener;
 | |
|     private final NavigationMenuPresenter presenter;
 | |
|     private final ShapeableDelegate shapeableDelegate;
 | |
|     private final MaterialSideContainerBackHelper sideContainerBackHelper;
 | |
|     private final int[] tmpLocation;
 | |
|     private boolean topInsetScrimEnabled;
 | |
|     private static final int[] CHECKED_STATE_SET = {R.attr.state_checked};
 | |
|     private static final int[] DISABLED_STATE_SET = {-16842910};
 | |
|     private static final int DEF_STYLE_RES = com.google.android.material.R.style.Widget_Design_NavigationView;
 | |
| 
 | |
|     public interface OnNavigationItemSelectedListener {
 | |
|         boolean onNavigationItemSelected(MenuItem menuItem);
 | |
|     }
 | |
| 
 | |
|     MaterialSideContainerBackHelper getBackHelper() {
 | |
|         return this.sideContainerBackHelper;
 | |
|     }
 | |
| 
 | |
|     public Menu getMenu() {
 | |
|         return this.menu;
 | |
|     }
 | |
| 
 | |
|     public boolean isBottomInsetScrimEnabled() {
 | |
|         return this.bottomInsetScrimEnabled;
 | |
|     }
 | |
| 
 | |
|     public boolean isTopInsetScrimEnabled() {
 | |
|         return this.topInsetScrimEnabled;
 | |
|     }
 | |
| 
 | |
|     public void setBottomInsetScrimEnabled(boolean z) {
 | |
|         this.bottomInsetScrimEnabled = z;
 | |
|     }
 | |
| 
 | |
|     public void setNavigationItemSelectedListener(OnNavigationItemSelectedListener onNavigationItemSelectedListener) {
 | |
|         this.listener = onNavigationItemSelectedListener;
 | |
|     }
 | |
| 
 | |
|     public void setTopInsetScrimEnabled(boolean z) {
 | |
|         this.topInsetScrimEnabled = z;
 | |
|     }
 | |
| 
 | |
|     public NavigationView(Context context) {
 | |
|         this(context, null);
 | |
|     }
 | |
| 
 | |
|     public NavigationView(Context context, AttributeSet attributeSet) {
 | |
|         this(context, attributeSet, com.google.android.material.R.attr.navigationViewStyle);
 | |
|     }
 | |
| 
 | |
|     /* JADX WARN: Illegal instructions before constructor call */
 | |
|     /*
 | |
|         Code decompiled incorrectly, please refer to instructions dump.
 | |
|         To view partially-correct add '--show-bad-code' argument
 | |
|     */
 | |
|     public NavigationView(android.content.Context r17, android.util.AttributeSet r18, int r19) {
 | |
|         /*
 | |
|             Method dump skipped, instructions count: 572
 | |
|             To view this dump add '--comments-level debug' option
 | |
|         */
 | |
|         throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.navigation.NavigationView.<init>(android.content.Context, android.util.AttributeSet, int):void");
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void setOverScrollMode(int i) {
 | |
|         super.setOverScrollMode(i);
 | |
|         NavigationMenuPresenter navigationMenuPresenter = this.presenter;
 | |
|         if (navigationMenuPresenter != null) {
 | |
|             navigationMenuPresenter.setOverScrollMode(i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void setForceCompatClippingEnabled(boolean z) {
 | |
|         this.shapeableDelegate.setForceCompatClippingEnabled(this, z);
 | |
|     }
 | |
| 
 | |
|     private void maybeUpdateCornerSizeForDrawerLayout(int i, int i2) {
 | |
|         if ((getParent() instanceof DrawerLayout) && (getLayoutParams() instanceof DrawerLayout.LayoutParams) && this.drawerLayoutCornerSize > 0 && (getBackground() instanceof MaterialShapeDrawable)) {
 | |
|             boolean z = GravityCompat.getAbsoluteGravity(((DrawerLayout.LayoutParams) getLayoutParams()).gravity, ViewCompat.getLayoutDirection(this)) == 3;
 | |
|             MaterialShapeDrawable materialShapeDrawable = (MaterialShapeDrawable) getBackground();
 | |
|             ShapeAppearanceModel.Builder allCornerSizes = materialShapeDrawable.getShapeAppearanceModel().toBuilder().setAllCornerSizes(this.drawerLayoutCornerSize);
 | |
|             if (z) {
 | |
|                 allCornerSizes.setTopLeftCornerSize(0.0f);
 | |
|                 allCornerSizes.setBottomLeftCornerSize(0.0f);
 | |
|             } else {
 | |
|                 allCornerSizes.setTopRightCornerSize(0.0f);
 | |
|                 allCornerSizes.setBottomRightCornerSize(0.0f);
 | |
|             }
 | |
|             ShapeAppearanceModel build = allCornerSizes.build();
 | |
|             materialShapeDrawable.setShapeAppearanceModel(build);
 | |
|             this.shapeableDelegate.onShapeAppearanceChanged(this, build);
 | |
|             this.shapeableDelegate.onMaskChanged(this, new RectF(0.0f, 0.0f, i, i2));
 | |
|             this.shapeableDelegate.setOffsetZeroCornerEdgeBoundsEnabled(this, true);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private boolean hasShapeAppearance(TintTypedArray tintTypedArray) {
 | |
|         return tintTypedArray.hasValue(com.google.android.material.R.styleable.NavigationView_itemShapeAppearance) || tintTypedArray.hasValue(com.google.android.material.R.styleable.NavigationView_itemShapeAppearanceOverlay);
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.internal.ScrimInsetsFrameLayout, android.view.ViewGroup, android.view.View
 | |
|     protected void onAttachedToWindow() {
 | |
|         super.onAttachedToWindow();
 | |
|         MaterialShapeUtils.setParentAbsoluteElevation(this);
 | |
|         ViewParent parent = getParent();
 | |
|         if ((parent instanceof DrawerLayout) && this.backOrchestrator.shouldListenForBackCallbacks()) {
 | |
|             DrawerLayout drawerLayout = (DrawerLayout) parent;
 | |
|             drawerLayout.removeDrawerListener(this.backDrawerListener);
 | |
|             drawerLayout.addDrawerListener(this.backDrawerListener);
 | |
|             if (drawerLayout.isDrawerOpen(this)) {
 | |
|                 this.backOrchestrator.startListeningForBackCallbacksWithPriorityOverlay();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.internal.ScrimInsetsFrameLayout, android.view.ViewGroup, android.view.View
 | |
|     protected void onDetachedFromWindow() {
 | |
|         super.onDetachedFromWindow();
 | |
|         getViewTreeObserver().removeOnGlobalLayoutListener(this.onGlobalLayoutListener);
 | |
|         ViewParent parent = getParent();
 | |
|         if (parent instanceof DrawerLayout) {
 | |
|             ((DrawerLayout) parent).removeDrawerListener(this.backDrawerListener);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     protected void onSizeChanged(int i, int i2, int i3, int i4) {
 | |
|         super.onSizeChanged(i, i2, i3, i4);
 | |
|         maybeUpdateCornerSizeForDrawerLayout(i, i2);
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void setElevation(float f) {
 | |
|         super.setElevation(f);
 | |
|         MaterialShapeUtils.setElevation(this, f);
 | |
|     }
 | |
| 
 | |
|     private Drawable createDefaultItemBackground(TintTypedArray tintTypedArray) {
 | |
|         return createDefaultItemDrawable(tintTypedArray, MaterialResources.getColorStateList(getContext(), tintTypedArray, com.google.android.material.R.styleable.NavigationView_itemShapeFillColor));
 | |
|     }
 | |
| 
 | |
|     private Drawable createDefaultItemDrawable(TintTypedArray tintTypedArray, ColorStateList colorStateList) {
 | |
|         MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(ShapeAppearanceModel.builder(getContext(), tintTypedArray.getResourceId(com.google.android.material.R.styleable.NavigationView_itemShapeAppearance, 0), tintTypedArray.getResourceId(com.google.android.material.R.styleable.NavigationView_itemShapeAppearanceOverlay, 0)).build());
 | |
|         materialShapeDrawable.setFillColor(colorStateList);
 | |
|         return new InsetDrawable((Drawable) materialShapeDrawable, tintTypedArray.getDimensionPixelSize(com.google.android.material.R.styleable.NavigationView_itemShapeInsetStart, 0), tintTypedArray.getDimensionPixelSize(com.google.android.material.R.styleable.NavigationView_itemShapeInsetTop, 0), tintTypedArray.getDimensionPixelSize(com.google.android.material.R.styleable.NavigationView_itemShapeInsetEnd, 0), tintTypedArray.getDimensionPixelSize(com.google.android.material.R.styleable.NavigationView_itemShapeInsetBottom, 0));
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     protected Parcelable onSaveInstanceState() {
 | |
|         SavedState savedState = new SavedState(super.onSaveInstanceState());
 | |
|         savedState.menuState = new Bundle();
 | |
|         this.menu.savePresenterStates(savedState.menuState);
 | |
|         return savedState;
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     protected 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);
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.FrameLayout, android.view.View
 | |
|     protected 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), BasicMeasure.EXACTLY);
 | |
|         } else if (mode == 0) {
 | |
|             i = View.MeasureSpec.makeMeasureSpec(this.maxWidth, BasicMeasure.EXACTLY);
 | |
|         }
 | |
|         super.onMeasure(i, i2);
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.ViewGroup, android.view.View
 | |
|     protected void dispatchDraw(Canvas canvas) {
 | |
|         this.shapeableDelegate.maybeClip(canvas, new CanvasCompat.CanvasOperation() { // from class: com.google.android.material.navigation.NavigationView$$ExternalSyntheticLambda0
 | |
|             @Override // com.google.android.material.canvas.CanvasCompat.CanvasOperation
 | |
|             public final void run(Canvas canvas2) {
 | |
|                 NavigationView.this.m245xb790515(canvas2);
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     /* renamed from: lambda$dispatchDraw$0$com-google-android-material-navigation-NavigationView, reason: not valid java name */
 | |
|     /* synthetic */ void m245xb790515(Canvas canvas) {
 | |
|         super.dispatchDraw(canvas);
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.internal.ScrimInsetsFrameLayout
 | |
|     protected 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 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 getItemVerticalPadding() {
 | |
|         return this.presenter.getItemVerticalPadding();
 | |
|     }
 | |
| 
 | |
|     public void setItemVerticalPadding(int i) {
 | |
|         this.presenter.setItemVerticalPadding(i);
 | |
|     }
 | |
| 
 | |
|     public void setItemVerticalPaddingResource(int i) {
 | |
|         this.presenter.setItemVerticalPadding(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 setItemTextAppearanceActiveBoldEnabled(boolean z) {
 | |
|         this.presenter.setItemTextAppearanceActiveBoldEnabled(z);
 | |
|     }
 | |
| 
 | |
|     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();
 | |
|     }
 | |
| 
 | |
|     public int getDividerInsetStart() {
 | |
|         return this.presenter.getDividerInsetStart();
 | |
|     }
 | |
| 
 | |
|     public void setDividerInsetStart(int i) {
 | |
|         this.presenter.setDividerInsetStart(i);
 | |
|     }
 | |
| 
 | |
|     public int getDividerInsetEnd() {
 | |
|         return this.presenter.getDividerInsetEnd();
 | |
|     }
 | |
| 
 | |
|     public void setDividerInsetEnd(int i) {
 | |
|         this.presenter.setDividerInsetEnd(i);
 | |
|     }
 | |
| 
 | |
|     public int getSubheaderInsetStart() {
 | |
|         return this.presenter.getSubheaderInsetStart();
 | |
|     }
 | |
| 
 | |
|     public void setSubheaderInsetStart(int i) {
 | |
|         this.presenter.setSubheaderInsetStart(i);
 | |
|     }
 | |
| 
 | |
|     public int getSubheaderInsetEnd() {
 | |
|         return this.presenter.getSubheaderInsetEnd();
 | |
|     }
 | |
| 
 | |
|     public void setSubheaderInsetEnd(int i) {
 | |
|         this.presenter.setSubheaderInsetEnd(i);
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.motion.MaterialBackHandler
 | |
|     public void startBackProgress(BackEventCompat backEventCompat) {
 | |
|         requireDrawerLayoutParent();
 | |
|         this.sideContainerBackHelper.startBackProgress(backEventCompat);
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.motion.MaterialBackHandler
 | |
|     public void updateBackProgress(BackEventCompat backEventCompat) {
 | |
|         this.sideContainerBackHelper.updateBackProgress(backEventCompat, ((DrawerLayout.LayoutParams) requireDrawerLayoutParent().second).gravity);
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.motion.MaterialBackHandler
 | |
|     public void handleBackInvoked() {
 | |
|         Pair<DrawerLayout, DrawerLayout.LayoutParams> requireDrawerLayoutParent = requireDrawerLayoutParent();
 | |
|         DrawerLayout drawerLayout = (DrawerLayout) requireDrawerLayoutParent.first;
 | |
|         BackEventCompat onHandleBackInvoked = this.sideContainerBackHelper.onHandleBackInvoked();
 | |
|         if (onHandleBackInvoked == null || Build.VERSION.SDK_INT < 34) {
 | |
|             drawerLayout.closeDrawer(this);
 | |
|             return;
 | |
|         }
 | |
|         this.sideContainerBackHelper.finishBackProgress(onHandleBackInvoked, ((DrawerLayout.LayoutParams) requireDrawerLayoutParent.second).gravity, DrawerLayoutUtils.getScrimCloseAnimatorListener(drawerLayout, this), DrawerLayoutUtils.getScrimCloseAnimatorUpdateListener(drawerLayout));
 | |
|     }
 | |
| 
 | |
|     @Override // com.google.android.material.motion.MaterialBackHandler
 | |
|     public void cancelBackProgress() {
 | |
|         requireDrawerLayoutParent();
 | |
|         this.sideContainerBackHelper.cancelBackProgress();
 | |
|     }
 | |
| 
 | |
|     private Pair<DrawerLayout, DrawerLayout.LayoutParams> requireDrawerLayoutParent() {
 | |
|         ViewParent parent = getParent();
 | |
|         ViewGroup.LayoutParams layoutParams = getLayoutParams();
 | |
|         if ((parent instanceof DrawerLayout) && (layoutParams instanceof DrawerLayout.LayoutParams)) {
 | |
|             return new Pair<>((DrawerLayout) parent, (DrawerLayout.LayoutParams) layoutParams);
 | |
|         }
 | |
|         throw new IllegalStateException("NavigationView back progress requires the direct parent view to be a DrawerLayout.");
 | |
|     }
 | |
| 
 | |
|     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});
 | |
|     }
 | |
| 
 | |
|     private void setupInsetScrimsListener() {
 | |
|         this.onGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() { // from class: com.google.android.material.navigation.NavigationView.3
 | |
|             @Override // android.view.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 navigationView2 = NavigationView.this;
 | |
|                 navigationView2.setDrawTopInsetForeground(z2 && navigationView2.isTopInsetScrimEnabled());
 | |
|                 NavigationView.this.setDrawLeftInsetForeground(NavigationView.this.tmpLocation[0] == 0 || NavigationView.this.tmpLocation[0] + NavigationView.this.getWidth() == 0);
 | |
|                 Activity activity = ContextUtils.getActivity(NavigationView.this.getContext());
 | |
|                 if (activity != null) {
 | |
|                     Rect currentWindowBounds = WindowUtils.getCurrentWindowBounds(activity);
 | |
|                     boolean z3 = currentWindowBounds.height() - NavigationView.this.getHeight() == NavigationView.this.tmpLocation[1];
 | |
|                     boolean z4 = Color.alpha(activity.getWindow().getNavigationBarColor()) != 0;
 | |
|                     NavigationView navigationView3 = NavigationView.this;
 | |
|                     navigationView3.setDrawBottomInsetForeground(z3 && z4 && navigationView3.isBottomInsetScrimEnabled());
 | |
|                     if (currentWindowBounds.width() != NavigationView.this.tmpLocation[0] && currentWindowBounds.width() - NavigationView.this.getWidth() != NavigationView.this.tmpLocation[0]) {
 | |
|                         z = false;
 | |
|                     }
 | |
|                     NavigationView.this.setDrawRightInsetForeground(z);
 | |
|                 }
 | |
|             }
 | |
|         };
 | |
|         getViewTreeObserver().addOnGlobalLayoutListener(this.onGlobalLayoutListener);
 | |
|     }
 | |
| 
 | |
|     public static class SavedState extends AbsSavedState {
 | |
|         public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() { // from class: com.google.android.material.navigation.NavigationView.SavedState.1
 | |
|             /* JADX WARN: Can't rename method to resolve collision */
 | |
|             @Override // android.os.Parcelable.ClassLoaderCreator
 | |
|             public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
 | |
|                 return new SavedState(parcel, classLoader);
 | |
|             }
 | |
| 
 | |
|             @Override // android.os.Parcelable.Creator
 | |
|             public SavedState createFromParcel(Parcel parcel) {
 | |
|                 return new SavedState(parcel, null);
 | |
|             }
 | |
| 
 | |
|             @Override // android.os.Parcelable.Creator
 | |
|             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);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.customview.view.AbsSavedState, android.os.Parcelable
 | |
|         public void writeToParcel(Parcel parcel, int i) {
 | |
|             super.writeToParcel(parcel, i);
 | |
|             parcel.writeBundle(this.menuState);
 | |
|         }
 | |
|     }
 | |
| }
 |