package com.google.android.material.bottomappbar; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import androidx.appcompat.widget.ActionMenuView; import androidx.appcompat.widget.Toolbar; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.graphics.drawable.DrawableCompat; import androidx.core.view.GravityCompat; import androidx.core.view.ViewCompat; import androidx.customview.view.AbsSavedState; import com.google.android.material.R; import com.google.android.material.animation.AnimationUtils; import com.google.android.material.animation.TransformationCallback; import com.google.android.material.behavior.HideBottomViewOnScrollBehavior; import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.internal.ViewUtils; import com.google.android.material.motion.MotionUtils; import com.google.android.material.shape.MaterialShapeDrawable; import com.google.android.material.shape.MaterialShapeUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* loaded from: classes.dex */ public class BottomAppBar extends Toolbar implements CoordinatorLayout.AttachedBehavior { private static final int FAB_ALIGNMENT_ANIM_DURATION_DEFAULT = 300; private static final float FAB_ALIGNMENT_ANIM_EASING_MIDPOINT = 0.2f; public static final int FAB_ALIGNMENT_MODE_CENTER = 0; public static final int FAB_ALIGNMENT_MODE_END = 1; public static final int FAB_ANCHOR_MODE_CRADLE = 1; public static final int FAB_ANCHOR_MODE_EMBED = 0; public static final int FAB_ANIMATION_MODE_SCALE = 0; public static final int FAB_ANIMATION_MODE_SLIDE = 1; public static final int MENU_ALIGNMENT_MODE_AUTO = 0; public static final int MENU_ALIGNMENT_MODE_START = 1; private static final int NO_FAB_END_MARGIN = -1; private static final int NO_MENU_RES_ID = 0; private int animatingModeChangeCounter; private ArrayList animationListeners; private Behavior behavior; private int bottomInset; private int fabAlignmentMode; private int fabAlignmentModeEndMargin; private int fabAnchorMode; AnimatorListenerAdapter fabAnimationListener; private int fabAnimationMode; private boolean fabAttached; private final int fabOffsetEndMode; TransformationCallback fabTransformationCallback; private boolean hideOnScroll; private int leftInset; private final MaterialShapeDrawable materialShapeDrawable; private int menuAlignmentMode; private boolean menuAnimatingWithFabAlignmentMode; private Animator menuAnimator; private Animator modeAnimator; private Integer navigationIconTint; private final boolean paddingBottomSystemWindowInsets; private final boolean paddingLeftSystemWindowInsets; private final boolean paddingRightSystemWindowInsets; private int pendingMenuResId; private final boolean removeEmbeddedFabElevation; private int rightInset; private static final int DEF_STYLE_RES = R.style.Widget_MaterialComponents_BottomAppBar; private static final int FAB_ALIGNMENT_ANIM_DURATION_ATTR = R.attr.motionDurationLong2; private static final int FAB_ALIGNMENT_ANIM_EASING_ATTR = R.attr.motionEasingEmphasizedInterpolator; interface AnimationListener { void onAnimationEnd(BottomAppBar bottomAppBar); void onAnimationStart(BottomAppBar bottomAppBar); } @Retention(RetentionPolicy.SOURCE) public @interface FabAlignmentMode { } @Retention(RetentionPolicy.SOURCE) public @interface FabAnchorMode { } @Retention(RetentionPolicy.SOURCE) public @interface FabAnimationMode { } @Retention(RetentionPolicy.SOURCE) public @interface MenuAlignmentMode { } /* JADX INFO: Access modifiers changed from: private */ public int getBottomInset() { return this.bottomInset; } /* JADX INFO: Access modifiers changed from: private */ public int getLeftInset() { return this.leftInset; } /* JADX INFO: Access modifiers changed from: private */ public int getRightInset() { return this.rightInset; } public int getFabAlignmentMode() { return this.fabAlignmentMode; } public int getFabAlignmentModeEndMargin() { return this.fabAlignmentModeEndMargin; } public int getFabAnchorMode() { return this.fabAnchorMode; } public int getFabAnimationMode() { return this.fabAnimationMode; } public boolean getHideOnScroll() { return this.hideOnScroll; } public int getMenuAlignmentMode() { return this.menuAlignmentMode; } public void setFabAnimationMode(int i) { this.fabAnimationMode = i; } public void setHideOnScroll(boolean z) { this.hideOnScroll = z; } @Override // androidx.appcompat.widget.Toolbar public void setSubtitle(CharSequence charSequence) { } @Override // androidx.appcompat.widget.Toolbar public void setTitle(CharSequence charSequence) { } public BottomAppBar(Context context) { this(context, null); } public BottomAppBar(Context context, AttributeSet attributeSet) { this(context, attributeSet, R.attr.bottomAppBarStyle); } /* 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 BottomAppBar(android.content.Context r13, android.util.AttributeSet r14, int r15) { /* Method dump skipped, instructions count: 277 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.bottomappbar.BottomAppBar.(android.content.Context, android.util.AttributeSet, int):void"); } @Override // androidx.appcompat.widget.Toolbar public void setNavigationIcon(Drawable drawable) { super.setNavigationIcon(maybeTintNavigationIcon(drawable)); } public void setNavigationIconTint(int i) { this.navigationIconTint = Integer.valueOf(i); Drawable navigationIcon = getNavigationIcon(); if (navigationIcon != null) { setNavigationIcon(navigationIcon); } } public void setFabAlignmentMode(int i) { setFabAlignmentModeAndReplaceMenu(i, 0); } public void setFabAlignmentModeAndReplaceMenu(int i, int i2) { this.pendingMenuResId = i2; this.menuAnimatingWithFabAlignmentMode = true; maybeAnimateMenuView(i, this.fabAttached); maybeAnimateModeChange(i); this.fabAlignmentMode = i; } public void setFabAnchorMode(int i) { this.fabAnchorMode = i; setCutoutStateAndTranslateFab(); View findDependentView = findDependentView(); if (findDependentView != null) { updateFabAnchorGravity(this, findDependentView); findDependentView.requestLayout(); this.materialShapeDrawable.invalidateSelf(); } } /* JADX INFO: Access modifiers changed from: private */ public static void updateFabAnchorGravity(BottomAppBar bottomAppBar, View view) { CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) view.getLayoutParams(); layoutParams.anchorGravity = 17; if (bottomAppBar.fabAnchorMode == 1) { layoutParams.anchorGravity |= 48; } if (bottomAppBar.fabAnchorMode == 0) { layoutParams.anchorGravity |= 80; } } public void setMenuAlignmentMode(int i) { if (this.menuAlignmentMode != i) { this.menuAlignmentMode = i; ActionMenuView actionMenuView = getActionMenuView(); if (actionMenuView != null) { translateActionMenuView(actionMenuView, this.fabAlignmentMode, isFabVisibleOrWillBeShown()); } } } public void setBackgroundTint(ColorStateList colorStateList) { DrawableCompat.setTintList(this.materialShapeDrawable, colorStateList); } public ColorStateList getBackgroundTint() { return this.materialShapeDrawable.getTintList(); } public float getFabCradleMargin() { return getTopEdgeTreatment().getFabCradleMargin(); } public void setFabCradleMargin(float f) { if (f != getFabCradleMargin()) { getTopEdgeTreatment().setFabCradleMargin(f); this.materialShapeDrawable.invalidateSelf(); } } public float getFabCradleRoundedCornerRadius() { return getTopEdgeTreatment().getFabCradleRoundedCornerRadius(); } public void setFabCradleRoundedCornerRadius(float f) { if (f != getFabCradleRoundedCornerRadius()) { getTopEdgeTreatment().setFabCradleRoundedCornerRadius(f); this.materialShapeDrawable.invalidateSelf(); } } public float getCradleVerticalOffset() { return getTopEdgeTreatment().getCradleVerticalOffset(); } public void setCradleVerticalOffset(float f) { if (f != getCradleVerticalOffset()) { getTopEdgeTreatment().setCradleVerticalOffset(f); this.materialShapeDrawable.invalidateSelf(); setCutoutStateAndTranslateFab(); } } public void setFabAlignmentModeEndMargin(int i) { if (this.fabAlignmentModeEndMargin != i) { this.fabAlignmentModeEndMargin = i; setCutoutStateAndTranslateFab(); } } public void performHide() { performHide(true); } public void performHide(boolean z) { getBehavior().slideDown(this, z); } public void performShow() { performShow(true); } public void performShow(boolean z) { getBehavior().slideUp(this, z); } public boolean isScrolledDown() { return getBehavior().isScrolledDown(); } public boolean isScrolledUp() { return getBehavior().isScrolledUp(); } public void addOnScrollStateChangedListener(HideBottomViewOnScrollBehavior.OnScrollStateChangedListener onScrollStateChangedListener) { getBehavior().addOnScrollStateChangedListener(onScrollStateChangedListener); } public void removeOnScrollStateChangedListener(HideBottomViewOnScrollBehavior.OnScrollStateChangedListener onScrollStateChangedListener) { getBehavior().removeOnScrollStateChangedListener(onScrollStateChangedListener); } public void clearOnScrollStateChangedListeners() { getBehavior().clearOnScrollStateChangedListeners(); } @Override // android.view.View public void setElevation(float f) { this.materialShapeDrawable.setElevation(f); getBehavior().setAdditionalHiddenOffsetY(this, this.materialShapeDrawable.getShadowRadius() - this.materialShapeDrawable.getShadowOffsetY()); } public void replaceMenu(int i) { if (i != 0) { this.pendingMenuResId = 0; getMenu().clear(); inflateMenu(i); } } void addAnimationListener(AnimationListener animationListener) { if (this.animationListeners == null) { this.animationListeners = new ArrayList<>(); } this.animationListeners.add(animationListener); } void removeAnimationListener(AnimationListener animationListener) { ArrayList arrayList = this.animationListeners; if (arrayList == null) { return; } arrayList.remove(animationListener); } /* JADX INFO: Access modifiers changed from: private */ public void dispatchAnimationStart() { ArrayList arrayList; int i = this.animatingModeChangeCounter; this.animatingModeChangeCounter = i + 1; if (i != 0 || (arrayList = this.animationListeners) == null) { return; } Iterator it = arrayList.iterator(); while (it.hasNext()) { it.next().onAnimationStart(this); } } /* JADX INFO: Access modifiers changed from: private */ public void dispatchAnimationEnd() { ArrayList arrayList; int i = this.animatingModeChangeCounter - 1; this.animatingModeChangeCounter = i; if (i != 0 || (arrayList = this.animationListeners) == null) { return; } Iterator it = arrayList.iterator(); while (it.hasNext()) { it.next().onAnimationEnd(this); } } boolean setFabDiameter(int i) { float f = i; if (f == getTopEdgeTreatment().getFabDiameter()) { return false; } getTopEdgeTreatment().setFabDiameter(f); this.materialShapeDrawable.invalidateSelf(); return true; } void setFabCornerSize(float f) { if (f != getTopEdgeTreatment().getFabCornerRadius()) { getTopEdgeTreatment().setFabCornerSize(f); this.materialShapeDrawable.invalidateSelf(); } } private void maybeAnimateModeChange(int i) { if (this.fabAlignmentMode == i || !ViewCompat.isLaidOut(this)) { return; } Animator animator = this.modeAnimator; if (animator != null) { animator.cancel(); } ArrayList arrayList = new ArrayList(); if (this.fabAnimationMode == 1) { createFabTranslationXAnimation(i, arrayList); } else { createFabDefaultXAnimation(i, arrayList); } AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether(arrayList); animatorSet.setInterpolator(MotionUtils.resolveThemeInterpolator(getContext(), FAB_ALIGNMENT_ANIM_EASING_ATTR, AnimationUtils.LINEAR_INTERPOLATOR)); this.modeAnimator = animatorSet; animatorSet.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.bottomappbar.BottomAppBar.4 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator2) { BottomAppBar.this.dispatchAnimationStart(); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator2) { BottomAppBar.this.dispatchAnimationEnd(); BottomAppBar.this.modeAnimator = null; } }); this.modeAnimator.start(); } /* JADX INFO: Access modifiers changed from: private */ public FloatingActionButton findDependentFab() { View findDependentView = findDependentView(); if (findDependentView instanceof FloatingActionButton) { return (FloatingActionButton) findDependentView; } return null; } /* JADX INFO: Access modifiers changed from: private */ public View findDependentView() { if (!(getParent() instanceof CoordinatorLayout)) { return null; } for (View view : ((CoordinatorLayout) getParent()).getDependents(this)) { if ((view instanceof FloatingActionButton) || (view instanceof ExtendedFloatingActionButton)) { return view; } } return null; } private boolean isFabVisibleOrWillBeShown() { FloatingActionButton findDependentFab = findDependentFab(); return findDependentFab != null && findDependentFab.isOrWillBeShown(); } protected void createFabDefaultXAnimation(final int i, List list) { FloatingActionButton findDependentFab = findDependentFab(); if (findDependentFab == null || findDependentFab.isOrWillBeHidden()) { return; } dispatchAnimationStart(); findDependentFab.hide(new FloatingActionButton.OnVisibilityChangedListener() { // from class: com.google.android.material.bottomappbar.BottomAppBar.5 @Override // com.google.android.material.floatingactionbutton.FloatingActionButton.OnVisibilityChangedListener public void onHidden(FloatingActionButton floatingActionButton) { floatingActionButton.setTranslationX(BottomAppBar.this.getFabTranslationX(i)); floatingActionButton.show(new FloatingActionButton.OnVisibilityChangedListener() { // from class: com.google.android.material.bottomappbar.BottomAppBar.5.1 @Override // com.google.android.material.floatingactionbutton.FloatingActionButton.OnVisibilityChangedListener public void onShown(FloatingActionButton floatingActionButton2) { BottomAppBar.this.dispatchAnimationEnd(); } }); } }); } private void createFabTranslationXAnimation(int i, List list) { ObjectAnimator ofFloat = ObjectAnimator.ofFloat(findDependentFab(), "translationX", getFabTranslationX(i)); ofFloat.setDuration(getFabAlignmentAnimationDuration()); list.add(ofFloat); } private int getFabAlignmentAnimationDuration() { return MotionUtils.resolveThemeDuration(getContext(), FAB_ALIGNMENT_ANIM_DURATION_ATTR, 300); } private Drawable maybeTintNavigationIcon(Drawable drawable) { if (drawable == null || this.navigationIconTint == null) { return drawable; } Drawable wrap = DrawableCompat.wrap(drawable.mutate()); DrawableCompat.setTint(wrap, this.navigationIconTint.intValue()); return wrap; } /* JADX INFO: Access modifiers changed from: private */ public void maybeAnimateMenuView(int i, boolean z) { if (!ViewCompat.isLaidOut(this)) { this.menuAnimatingWithFabAlignmentMode = false; replaceMenu(this.pendingMenuResId); return; } Animator animator = this.menuAnimator; if (animator != null) { animator.cancel(); } ArrayList arrayList = new ArrayList(); if (!isFabVisibleOrWillBeShown()) { i = 0; z = false; } createMenuViewTranslationAnimation(i, z, arrayList); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether(arrayList); this.menuAnimator = animatorSet; animatorSet.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.bottomappbar.BottomAppBar.6 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator2) { BottomAppBar.this.dispatchAnimationStart(); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator2) { BottomAppBar.this.dispatchAnimationEnd(); BottomAppBar.this.menuAnimatingWithFabAlignmentMode = false; BottomAppBar.this.menuAnimator = null; } }); this.menuAnimator.start(); } private void createMenuViewTranslationAnimation(final int i, final boolean z, List list) { final ActionMenuView actionMenuView = getActionMenuView(); if (actionMenuView == null) { return; } float fabAlignmentAnimationDuration = getFabAlignmentAnimationDuration(); Animator ofFloat = ObjectAnimator.ofFloat(actionMenuView, "alpha", 1.0f); ofFloat.setDuration((long) (0.8f * fabAlignmentAnimationDuration)); if (Math.abs(actionMenuView.getTranslationX() - getActionMenuViewTranslationX(actionMenuView, i, z)) <= 1.0f) { if (actionMenuView.getAlpha() < 1.0f) { list.add(ofFloat); } } else { ObjectAnimator ofFloat2 = ObjectAnimator.ofFloat(actionMenuView, "alpha", 0.0f); ofFloat2.setDuration((long) (fabAlignmentAnimationDuration * 0.2f)); ofFloat2.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.bottomappbar.BottomAppBar.7 public boolean cancelled; @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationCancel(Animator animator) { this.cancelled = true; } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { if (this.cancelled) { return; } boolean z2 = BottomAppBar.this.pendingMenuResId != 0; BottomAppBar bottomAppBar = BottomAppBar.this; bottomAppBar.replaceMenu(bottomAppBar.pendingMenuResId); BottomAppBar.this.translateActionMenuView(actionMenuView, i, z, z2); } }); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playSequentially(ofFloat2, ofFloat); list.add(animatorSet); } } private float getFabTranslationY() { if (this.fabAnchorMode == 1) { return -getTopEdgeTreatment().getCradleVerticalOffset(); } return findDependentView() != null ? (-((getMeasuredHeight() + getBottomInset()) - r0.getMeasuredHeight())) / 2 : 0; } /* JADX INFO: Access modifiers changed from: private */ public float getFabTranslationX(int i) { boolean isLayoutRtl = ViewUtils.isLayoutRtl(this); if (i != 1) { return 0.0f; } return ((getMeasuredWidth() / 2) - ((isLayoutRtl ? this.leftInset : this.rightInset) + ((this.fabAlignmentModeEndMargin == -1 || findDependentView() == null) ? this.fabOffsetEndMode : (r6.getMeasuredWidth() / 2) + this.fabAlignmentModeEndMargin))) * (isLayoutRtl ? -1 : 1); } /* JADX INFO: Access modifiers changed from: private */ public float getFabTranslationX() { return getFabTranslationX(this.fabAlignmentMode); } private ActionMenuView getActionMenuView() { for (int i = 0; i < getChildCount(); i++) { View childAt = getChildAt(i); if (childAt instanceof ActionMenuView) { return (ActionMenuView) childAt; } } return null; } private void translateActionMenuView(ActionMenuView actionMenuView, int i, boolean z) { translateActionMenuView(actionMenuView, i, z, false); } /* JADX INFO: Access modifiers changed from: private */ public void translateActionMenuView(final ActionMenuView actionMenuView, final int i, final boolean z, boolean z2) { Runnable runnable = new Runnable() { // from class: com.google.android.material.bottomappbar.BottomAppBar.8 @Override // java.lang.Runnable public void run() { actionMenuView.setTranslationX(BottomAppBar.this.getActionMenuViewTranslationX(r0, i, z)); } }; if (z2) { actionMenuView.post(runnable); } else { runnable.run(); } } protected int getActionMenuViewTranslationX(ActionMenuView actionMenuView, int i, boolean z) { int i2 = 0; if (this.menuAlignmentMode != 1 && (i != 1 || !z)) { return 0; } boolean isLayoutRtl = ViewUtils.isLayoutRtl(this); int measuredWidth = isLayoutRtl ? getMeasuredWidth() : 0; for (int i3 = 0; i3 < getChildCount(); i3++) { View childAt = getChildAt(i3); if ((childAt.getLayoutParams() instanceof Toolbar.LayoutParams) && (((Toolbar.LayoutParams) childAt.getLayoutParams()).gravity & GravityCompat.RELATIVE_HORIZONTAL_GRAVITY_MASK) == 8388611) { if (isLayoutRtl) { measuredWidth = Math.min(measuredWidth, childAt.getLeft()); } else { measuredWidth = Math.max(measuredWidth, childAt.getRight()); } } } int right = isLayoutRtl ? actionMenuView.getRight() : actionMenuView.getLeft(); int i4 = isLayoutRtl ? this.rightInset : -this.leftInset; if (getNavigationIcon() == null) { i2 = getResources().getDimensionPixelOffset(R.dimen.m3_bottomappbar_horizontal_padding); if (!isLayoutRtl) { i2 = -i2; } } return measuredWidth - ((right + i4) + i2); } /* JADX INFO: Access modifiers changed from: private */ public void cancelAnimations() { Animator animator = this.menuAnimator; if (animator != null) { animator.cancel(); } Animator animator2 = this.modeAnimator; if (animator2 != null) { animator2.cancel(); } } @Override // androidx.appcompat.widget.Toolbar, android.view.ViewGroup, android.view.View protected void onLayout(boolean z, int i, int i2, int i3, int i4) { super.onLayout(z, i, i2, i3, i4); if (z) { cancelAnimations(); setCutoutStateAndTranslateFab(); final View findDependentView = findDependentView(); if (findDependentView != null && ViewCompat.isLaidOut(findDependentView)) { findDependentView.post(new Runnable() { // from class: com.google.android.material.bottomappbar.BottomAppBar$$ExternalSyntheticLambda2 @Override // java.lang.Runnable public final void run() { findDependentView.requestLayout(); } }); } } setActionMenuViewPosition(); } /* JADX INFO: Access modifiers changed from: private */ public BottomAppBarTopEdgeTreatment getTopEdgeTreatment() { return (BottomAppBarTopEdgeTreatment) this.materialShapeDrawable.getShapeAppearanceModel().getTopEdge(); } /* JADX INFO: Access modifiers changed from: private */ public void setCutoutStateAndTranslateFab() { getTopEdgeTreatment().setHorizontalOffset(getFabTranslationX()); this.materialShapeDrawable.setInterpolation((this.fabAttached && isFabVisibleOrWillBeShown() && this.fabAnchorMode == 1) ? 1.0f : 0.0f); View findDependentView = findDependentView(); if (findDependentView != null) { findDependentView.setTranslationY(getFabTranslationY()); findDependentView.setTranslationX(getFabTranslationX()); } } /* JADX INFO: Access modifiers changed from: private */ public void setActionMenuViewPosition() { ActionMenuView actionMenuView = getActionMenuView(); if (actionMenuView == null || this.menuAnimator != null) { return; } actionMenuView.setAlpha(1.0f); if (!isFabVisibleOrWillBeShown()) { translateActionMenuView(actionMenuView, 0, false); } else { translateActionMenuView(actionMenuView, this.fabAlignmentMode, this.fabAttached); } } /* JADX INFO: Access modifiers changed from: private */ public void addFabAnimationListeners(FloatingActionButton floatingActionButton) { floatingActionButton.addOnHideAnimationListener(this.fabAnimationListener); floatingActionButton.addOnShowAnimationListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.bottomappbar.BottomAppBar.9 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { BottomAppBar.this.fabAnimationListener.onAnimationStart(animator); FloatingActionButton findDependentFab = BottomAppBar.this.findDependentFab(); if (findDependentFab != null) { findDependentFab.setTranslationX(BottomAppBar.this.getFabTranslationX()); } } }); floatingActionButton.addTransformationCallback(this.fabTransformationCallback); } @Override // androidx.coordinatorlayout.widget.CoordinatorLayout.AttachedBehavior public Behavior getBehavior() { if (this.behavior == null) { this.behavior = new Behavior(); } return this.behavior; } @Override // androidx.appcompat.widget.Toolbar, android.view.ViewGroup, android.view.View protected void onAttachedToWindow() { super.onAttachedToWindow(); MaterialShapeUtils.setParentAbsoluteElevation(this, this.materialShapeDrawable); if (getParent() instanceof ViewGroup) { ((ViewGroup) getParent()).setClipChildren(false); } } public static class Behavior extends HideBottomViewOnScrollBehavior { private final Rect fabContentRect; private final View.OnLayoutChangeListener fabLayoutListener; private int originalBottomMargin; private WeakReference viewRef; public Behavior() { this.fabLayoutListener = new View.OnLayoutChangeListener() { // from class: com.google.android.material.bottomappbar.BottomAppBar.Behavior.1 @Override // android.view.View.OnLayoutChangeListener public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) { boolean z; BottomAppBar bottomAppBar = (BottomAppBar) Behavior.this.viewRef.get(); if (bottomAppBar == null || (!((z = view instanceof FloatingActionButton)) && !(view instanceof ExtendedFloatingActionButton))) { view.removeOnLayoutChangeListener(this); return; } int height = view.getHeight(); if (z) { FloatingActionButton floatingActionButton = (FloatingActionButton) view; floatingActionButton.getMeasuredContentRect(Behavior.this.fabContentRect); height = Behavior.this.fabContentRect.height(); bottomAppBar.setFabDiameter(height); bottomAppBar.setFabCornerSize(floatingActionButton.getShapeAppearanceModel().getTopLeftCornerSize().getCornerSize(new RectF(Behavior.this.fabContentRect))); } CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) view.getLayoutParams(); if (Behavior.this.originalBottomMargin == 0) { if (bottomAppBar.fabAnchorMode == 1) { layoutParams.bottomMargin = bottomAppBar.getBottomInset() + (bottomAppBar.getResources().getDimensionPixelOffset(R.dimen.mtrl_bottomappbar_fab_bottom_margin) - ((view.getMeasuredHeight() - height) / 2)); } layoutParams.leftMargin = bottomAppBar.getLeftInset(); layoutParams.rightMargin = bottomAppBar.getRightInset(); if (ViewUtils.isLayoutRtl(view)) { layoutParams.leftMargin += bottomAppBar.fabOffsetEndMode; } else { layoutParams.rightMargin += bottomAppBar.fabOffsetEndMode; } } bottomAppBar.setCutoutStateAndTranslateFab(); } }; this.fabContentRect = new Rect(); } public Behavior(Context context, AttributeSet attributeSet) { super(context, attributeSet); this.fabLayoutListener = new View.OnLayoutChangeListener() { // from class: com.google.android.material.bottomappbar.BottomAppBar.Behavior.1 @Override // android.view.View.OnLayoutChangeListener public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) { boolean z; BottomAppBar bottomAppBar = (BottomAppBar) Behavior.this.viewRef.get(); if (bottomAppBar == null || (!((z = view instanceof FloatingActionButton)) && !(view instanceof ExtendedFloatingActionButton))) { view.removeOnLayoutChangeListener(this); return; } int height = view.getHeight(); if (z) { FloatingActionButton floatingActionButton = (FloatingActionButton) view; floatingActionButton.getMeasuredContentRect(Behavior.this.fabContentRect); height = Behavior.this.fabContentRect.height(); bottomAppBar.setFabDiameter(height); bottomAppBar.setFabCornerSize(floatingActionButton.getShapeAppearanceModel().getTopLeftCornerSize().getCornerSize(new RectF(Behavior.this.fabContentRect))); } CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) view.getLayoutParams(); if (Behavior.this.originalBottomMargin == 0) { if (bottomAppBar.fabAnchorMode == 1) { layoutParams.bottomMargin = bottomAppBar.getBottomInset() + (bottomAppBar.getResources().getDimensionPixelOffset(R.dimen.mtrl_bottomappbar_fab_bottom_margin) - ((view.getMeasuredHeight() - height) / 2)); } layoutParams.leftMargin = bottomAppBar.getLeftInset(); layoutParams.rightMargin = bottomAppBar.getRightInset(); if (ViewUtils.isLayoutRtl(view)) { layoutParams.leftMargin += bottomAppBar.fabOffsetEndMode; } else { layoutParams.rightMargin += bottomAppBar.fabOffsetEndMode; } } bottomAppBar.setCutoutStateAndTranslateFab(); } }; this.fabContentRect = new Rect(); } @Override // com.google.android.material.behavior.HideBottomViewOnScrollBehavior, androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior public boolean onLayoutChild(CoordinatorLayout coordinatorLayout, BottomAppBar bottomAppBar, int i) { this.viewRef = new WeakReference<>(bottomAppBar); View findDependentView = bottomAppBar.findDependentView(); if (findDependentView != null && !ViewCompat.isLaidOut(findDependentView)) { BottomAppBar.updateFabAnchorGravity(bottomAppBar, findDependentView); this.originalBottomMargin = ((CoordinatorLayout.LayoutParams) findDependentView.getLayoutParams()).bottomMargin; if (findDependentView instanceof FloatingActionButton) { FloatingActionButton floatingActionButton = (FloatingActionButton) findDependentView; if (bottomAppBar.fabAnchorMode == 0 && bottomAppBar.removeEmbeddedFabElevation) { ViewCompat.setElevation(floatingActionButton, 0.0f); floatingActionButton.setCompatElevation(0.0f); } if (floatingActionButton.getShowMotionSpec() == null) { floatingActionButton.setShowMotionSpecResource(R.animator.mtrl_fab_show_motion_spec); } if (floatingActionButton.getHideMotionSpec() == null) { floatingActionButton.setHideMotionSpecResource(R.animator.mtrl_fab_hide_motion_spec); } bottomAppBar.addFabAnimationListeners(floatingActionButton); } findDependentView.addOnLayoutChangeListener(this.fabLayoutListener); bottomAppBar.setCutoutStateAndTranslateFab(); } coordinatorLayout.onLayoutChild(bottomAppBar, i); return super.onLayoutChild(coordinatorLayout, (CoordinatorLayout) bottomAppBar, i); } @Override // com.google.android.material.behavior.HideBottomViewOnScrollBehavior, androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, BottomAppBar bottomAppBar, View view, View view2, int i, int i2) { return bottomAppBar.getHideOnScroll() && super.onStartNestedScroll(coordinatorLayout, (CoordinatorLayout) bottomAppBar, view, view2, i, i2); } } @Override // androidx.appcompat.widget.Toolbar, android.view.View protected Parcelable onSaveInstanceState() { SavedState savedState = new SavedState(super.onSaveInstanceState()); savedState.fabAlignmentMode = this.fabAlignmentMode; savedState.fabAttached = this.fabAttached; return savedState; } @Override // androidx.appcompat.widget.Toolbar, 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.fabAlignmentMode = savedState.fabAlignmentMode; this.fabAttached = savedState.fabAttached; } static class SavedState extends AbsSavedState { public static final Parcelable.Creator CREATOR = new Parcelable.ClassLoaderCreator() { // from class: com.google.android.material.bottomappbar.BottomAppBar.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]; } }; int fabAlignmentMode; boolean fabAttached; public SavedState(Parcelable parcelable) { super(parcelable); } public SavedState(Parcel parcel, ClassLoader classLoader) { super(parcel, classLoader); this.fabAlignmentMode = parcel.readInt(); this.fabAttached = parcel.readInt() != 0; } @Override // androidx.customview.view.AbsSavedState, android.os.Parcelable public void writeToParcel(Parcel parcel, int i) { super.writeToParcel(parcel, i); parcel.writeInt(this.fabAlignmentMode); parcel.writeInt(this.fabAttached ? 1 : 0); } } }