2025-03-31 16:33:42 +02:00

921 lines
39 KiB
Java

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<AnimationListener> 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<FloatingActionButton> 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.<init>(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<AnimationListener> arrayList = this.animationListeners;
if (arrayList == null) {
return;
}
arrayList.remove(animationListener);
}
/* JADX INFO: Access modifiers changed from: private */
public void dispatchAnimationStart() {
ArrayList<AnimationListener> arrayList;
int i = this.animatingModeChangeCounter;
this.animatingModeChangeCounter = i + 1;
if (i != 0 || (arrayList = this.animationListeners) == null) {
return;
}
Iterator<AnimationListener> it = arrayList.iterator();
while (it.hasNext()) {
it.next().onAnimationStart(this);
}
}
/* JADX INFO: Access modifiers changed from: private */
public void dispatchAnimationEnd() {
ArrayList<AnimationListener> arrayList;
int i = this.animatingModeChangeCounter - 1;
this.animatingModeChangeCounter = i;
if (i != 0 || (arrayList = this.animationListeners) == null) {
return;
}
Iterator<AnimationListener> 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<Animator> 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<Animator> 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<Animator> 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<BottomAppBar> {
private final Rect fabContentRect;
private final View.OnLayoutChangeListener fabLayoutListener;
private int originalBottomMargin;
private WeakReference<BottomAppBar> 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<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() { // 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);
}
}
}