Rabbit-R1/android (non root)/java/sources/com/google/android/material/floatingactionbutton/ExtendedFloatingActionButton.java
2024-05-21 17:08:36 -04:00

973 lines
46 KiB
Java

package com.google.android.material.floatingactionbutton;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.PropertyValuesHolder;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Property;
import android.view.View;
import android.view.ViewGroup;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;
import com.google.android.material.R;
import com.google.android.material.animation.MotionSpec;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.internal.DescendantOffsetUtils;
import io.sentry.protocol.ViewHierarchyNode;
import java.util.Iterator;
import java.util.List;
/* loaded from: classes2.dex */
public class ExtendedFloatingActionButton extends MaterialButton implements CoordinatorLayout.AttachedBehavior {
private static final int ANIM_STATE_HIDING = 1;
private static final int ANIM_STATE_NONE = 0;
private static final int ANIM_STATE_SHOWING = 2;
private static final int EXTEND = 3;
private static final int EXTEND_STRATEGY_AUTO = 0;
private static final int EXTEND_STRATEGY_MATCH_PARENT = 2;
private static final int EXTEND_STRATEGY_WRAP_CONTENT = 1;
private static final int HIDE = 1;
private static final int SHOW = 0;
private static final int SHRINK = 2;
private int animState;
private boolean animateShowBeforeLayout;
private final CoordinatorLayout.Behavior<ExtendedFloatingActionButton> behavior;
private final AnimatorTracker changeVisibilityTracker;
private final int collapsedSize;
private final MotionStrategy extendStrategy;
private final int extendStrategyType;
private int extendedPaddingEnd;
private int extendedPaddingStart;
private final MotionStrategy hideStrategy;
private boolean isExtended;
private boolean isTransforming;
private int originalHeight;
protected ColorStateList originalTextCsl;
private int originalWidth;
private final MotionStrategy showStrategy;
private final MotionStrategy shrinkStrategy;
private static final int DEF_STYLE_RES = R.style.Widget_MaterialComponents_ExtendedFloatingActionButton_Icon;
static final Property<View, Float> WIDTH = new Property<View, Float>(Float.class, ViewHierarchyNode.JsonKeys.WIDTH) { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.6
@Override // android.util.Property
public void set(View view, Float f) {
view.getLayoutParams().width = f.intValue();
view.requestLayout();
}
@Override // android.util.Property
public Float get(View view) {
return Float.valueOf(view.getLayoutParams().width);
}
};
static final Property<View, Float> HEIGHT = new Property<View, Float>(Float.class, ViewHierarchyNode.JsonKeys.HEIGHT) { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.7
@Override // android.util.Property
public void set(View view, Float f) {
view.getLayoutParams().height = f.intValue();
view.requestLayout();
}
@Override // android.util.Property
public Float get(View view) {
return Float.valueOf(view.getLayoutParams().height);
}
};
static final Property<View, Float> PADDING_START = new Property<View, Float>(Float.class, "paddingStart") { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.8
@Override // android.util.Property
public void set(View view, Float f) {
ViewCompat.setPaddingRelative(view, f.intValue(), view.getPaddingTop(), ViewCompat.getPaddingEnd(view), view.getPaddingBottom());
}
@Override // android.util.Property
public Float get(View view) {
return Float.valueOf(ViewCompat.getPaddingStart(view));
}
};
static final Property<View, Float> PADDING_END = new Property<View, Float>(Float.class, "paddingEnd") { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.9
@Override // android.util.Property
public void set(View view, Float f) {
ViewCompat.setPaddingRelative(view, ViewCompat.getPaddingStart(view), view.getPaddingTop(), f.intValue(), view.getPaddingBottom());
}
@Override // android.util.Property
public Float get(View view) {
return Float.valueOf(ViewCompat.getPaddingEnd(view));
}
};
/* loaded from: classes2.dex */
public static abstract class OnChangedCallback {
public void onExtended(ExtendedFloatingActionButton extendedFloatingActionButton) {
}
public void onHidden(ExtendedFloatingActionButton extendedFloatingActionButton) {
}
public void onShown(ExtendedFloatingActionButton extendedFloatingActionButton) {
}
public void onShrunken(ExtendedFloatingActionButton extendedFloatingActionButton) {
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes2.dex */
public interface Size {
int getHeight();
ViewGroup.LayoutParams getLayoutParams();
int getPaddingEnd();
int getPaddingStart();
int getWidth();
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.AttachedBehavior
public CoordinatorLayout.Behavior<ExtendedFloatingActionButton> getBehavior() {
return this.behavior;
}
public final boolean isExtended() {
return this.isExtended;
}
public void setAnimateShowBeforeLayout(boolean z) {
this.animateShowBeforeLayout = z;
}
public ExtendedFloatingActionButton(Context context) {
this(context, null);
}
public ExtendedFloatingActionButton(Context context, AttributeSet attributeSet) {
this(context, attributeSet, R.attr.extendedFloatingActionButtonStyle);
}
/* 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 ExtendedFloatingActionButton(android.content.Context r17, android.util.AttributeSet r18, int r19) {
/*
r16 = this;
r0 = r16
r7 = r18
r8 = r19
int r9 = com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.DEF_STYLE_RES
r1 = r17
android.content.Context r1 = com.google.android.material.theme.overlay.MaterialThemeOverlay.wrap(r1, r7, r8, r9)
r0.<init>(r1, r7, r8)
r10 = 0
r0.animState = r10
com.google.android.material.floatingactionbutton.AnimatorTracker r1 = new com.google.android.material.floatingactionbutton.AnimatorTracker
r1.<init>()
r0.changeVisibilityTracker = r1
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ShowStrategy r11 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ShowStrategy
r11.<init>(r1)
r0.showStrategy = r11
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$HideStrategy r12 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$HideStrategy
r12.<init>(r1)
r0.hideStrategy = r12
r13 = 1
r0.isExtended = r13
r0.isTransforming = r10
r0.animateShowBeforeLayout = r10
android.content.Context r14 = r16.getContext()
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ExtendedFloatingActionButtonBehavior r1 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ExtendedFloatingActionButtonBehavior
r1.<init>(r14, r7)
r0.behavior = r1
int[] r3 = com.google.android.material.R.styleable.ExtendedFloatingActionButton
int[] r6 = new int[r10]
r1 = r14
r2 = r18
r4 = r19
r5 = r9
android.content.res.TypedArray r1 = com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(r1, r2, r3, r4, r5, r6)
int r2 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_showMotionSpec
com.google.android.material.animation.MotionSpec r2 = com.google.android.material.animation.MotionSpec.createFromAttribute(r14, r1, r2)
int r3 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_hideMotionSpec
com.google.android.material.animation.MotionSpec r3 = com.google.android.material.animation.MotionSpec.createFromAttribute(r14, r1, r3)
int r4 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_extendMotionSpec
com.google.android.material.animation.MotionSpec r4 = com.google.android.material.animation.MotionSpec.createFromAttribute(r14, r1, r4)
int r5 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_shrinkMotionSpec
com.google.android.material.animation.MotionSpec r5 = com.google.android.material.animation.MotionSpec.createFromAttribute(r14, r1, r5)
int r6 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_collapsedSize
r15 = -1
int r6 = r1.getDimensionPixelSize(r6, r15)
r0.collapsedSize = r6
int r6 = com.google.android.material.R.styleable.ExtendedFloatingActionButton_extendStrategy
int r6 = r1.getInt(r6, r13)
r0.extendStrategyType = r6
int r15 = androidx.core.view.ViewCompat.getPaddingStart(r16)
r0.extendedPaddingStart = r15
int r15 = androidx.core.view.ViewCompat.getPaddingEnd(r16)
r0.extendedPaddingEnd = r15
com.google.android.material.floatingactionbutton.AnimatorTracker r15 = new com.google.android.material.floatingactionbutton.AnimatorTracker
r15.<init>()
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy r10 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$Size r6 = r0.getSizeFromExtendStrategyType(r6)
r10.<init>(r15, r6, r13)
r0.extendStrategy = r10
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy r6 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$1 r13 = new com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$1
r13.<init>()
r7 = 0
r6.<init>(r15, r13, r7)
r0.shrinkStrategy = r6
r11.setMotionSpec(r2)
r12.setMotionSpec(r3)
r10.setMotionSpec(r4)
r6.setMotionSpec(r5)
r1.recycle()
com.google.android.material.shape.CornerSize r1 = com.google.android.material.shape.ShapeAppearanceModel.PILL
r2 = r18
com.google.android.material.shape.ShapeAppearanceModel$Builder r1 = com.google.android.material.shape.ShapeAppearanceModel.builder(r14, r2, r8, r9, r1)
com.google.android.material.shape.ShapeAppearanceModel r1 = r1.build()
r0.setShapeAppearanceModel(r1)
r16.saveOriginalTextCsl()
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.<init>(android.content.Context, android.util.AttributeSet, int):void");
}
private Size getSizeFromExtendStrategyType(int i) {
final Size size = new Size() { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.2
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getWidth() {
return (ExtendedFloatingActionButton.this.getMeasuredWidth() - (ExtendedFloatingActionButton.this.getCollapsedPadding() * 2)) + ExtendedFloatingActionButton.this.extendedPaddingStart + ExtendedFloatingActionButton.this.extendedPaddingEnd;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getHeight() {
return ExtendedFloatingActionButton.this.getMeasuredHeight();
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingStart() {
return ExtendedFloatingActionButton.this.extendedPaddingStart;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingEnd() {
return ExtendedFloatingActionButton.this.extendedPaddingEnd;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public ViewGroup.LayoutParams getLayoutParams() {
return new ViewGroup.LayoutParams(-2, -2);
}
};
final Size size2 = new Size() { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.3
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getWidth() {
ViewGroup.MarginLayoutParams marginLayoutParams;
if (!(ExtendedFloatingActionButton.this.getParent() instanceof View)) {
return size.getWidth();
}
View view = (View) ExtendedFloatingActionButton.this.getParent();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams != null && layoutParams.width == -2) {
return size.getWidth();
}
return (view.getWidth() - ((!(ExtendedFloatingActionButton.this.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) || (marginLayoutParams = (ViewGroup.MarginLayoutParams) ExtendedFloatingActionButton.this.getLayoutParams()) == null) ? 0 : marginLayoutParams.leftMargin + marginLayoutParams.rightMargin)) - (view.getPaddingLeft() + view.getPaddingRight());
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getHeight() {
ViewGroup.MarginLayoutParams marginLayoutParams;
if (ExtendedFloatingActionButton.this.originalHeight != -1) {
if (ExtendedFloatingActionButton.this.originalHeight != 0 && ExtendedFloatingActionButton.this.originalHeight != -2) {
return ExtendedFloatingActionButton.this.originalHeight;
}
return size.getHeight();
}
if (!(ExtendedFloatingActionButton.this.getParent() instanceof View)) {
return size.getHeight();
}
View view = (View) ExtendedFloatingActionButton.this.getParent();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams != null && layoutParams.height == -2) {
return size.getHeight();
}
return (view.getHeight() - ((!(ExtendedFloatingActionButton.this.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) || (marginLayoutParams = (ViewGroup.MarginLayoutParams) ExtendedFloatingActionButton.this.getLayoutParams()) == null) ? 0 : marginLayoutParams.topMargin + marginLayoutParams.bottomMargin)) - (view.getPaddingTop() + view.getPaddingBottom());
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingStart() {
return ExtendedFloatingActionButton.this.extendedPaddingStart;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingEnd() {
return ExtendedFloatingActionButton.this.extendedPaddingEnd;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public ViewGroup.LayoutParams getLayoutParams() {
return new ViewGroup.LayoutParams(-1, ExtendedFloatingActionButton.this.originalHeight == 0 ? -2 : ExtendedFloatingActionButton.this.originalHeight);
}
};
return i != 1 ? i != 2 ? new Size() { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.4
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getWidth() {
if (ExtendedFloatingActionButton.this.originalWidth != -1) {
if (ExtendedFloatingActionButton.this.originalWidth != 0 && ExtendedFloatingActionButton.this.originalWidth != -2) {
return ExtendedFloatingActionButton.this.originalWidth;
}
return size.getWidth();
}
return size2.getWidth();
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getHeight() {
if (ExtendedFloatingActionButton.this.originalHeight != -1) {
if (ExtendedFloatingActionButton.this.originalHeight != 0 && ExtendedFloatingActionButton.this.originalHeight != -2) {
return ExtendedFloatingActionButton.this.originalHeight;
}
return size.getHeight();
}
return size2.getHeight();
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingStart() {
return ExtendedFloatingActionButton.this.extendedPaddingStart;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public int getPaddingEnd() {
return ExtendedFloatingActionButton.this.extendedPaddingEnd;
}
@Override // com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.Size
public ViewGroup.LayoutParams getLayoutParams() {
return new ViewGroup.LayoutParams(ExtendedFloatingActionButton.this.originalWidth == 0 ? -2 : ExtendedFloatingActionButton.this.originalWidth, ExtendedFloatingActionButton.this.originalHeight != 0 ? ExtendedFloatingActionButton.this.originalHeight : -2);
}
} : size2 : size;
}
@Override // android.widget.TextView
public void setTextColor(int i) {
super.setTextColor(i);
saveOriginalTextCsl();
}
@Override // android.widget.TextView
public void setTextColor(ColorStateList colorStateList) {
super.setTextColor(colorStateList);
saveOriginalTextCsl();
}
private void saveOriginalTextCsl() {
this.originalTextCsl = getTextColors();
}
/* JADX INFO: Access modifiers changed from: protected */
public void silentlyUpdateTextColor(ColorStateList colorStateList) {
super.setTextColor(colorStateList);
}
/* JADX INFO: Access modifiers changed from: protected */
@Override // com.google.android.material.button.MaterialButton, android.widget.TextView, android.view.View
public void onAttachedToWindow() {
super.onAttachedToWindow();
if (this.isExtended && TextUtils.isEmpty(getText()) && getIcon() != null) {
this.isExtended = false;
this.shrinkStrategy.performNow();
}
}
public void setExtended(boolean z) {
if (this.isExtended == z) {
return;
}
MotionStrategy motionStrategy = z ? this.extendStrategy : this.shrinkStrategy;
if (motionStrategy.shouldCancel()) {
return;
}
motionStrategy.performNow();
}
@Override // android.widget.TextView, android.view.View
public void setPaddingRelative(int i, int i2, int i3, int i4) {
super.setPaddingRelative(i, i2, i3, i4);
if (!this.isExtended || this.isTransforming) {
return;
}
this.extendedPaddingStart = i;
this.extendedPaddingEnd = i3;
}
@Override // android.widget.TextView, android.view.View
public void setPadding(int i, int i2, int i3, int i4) {
super.setPadding(i, i2, i3, i4);
if (!this.isExtended || this.isTransforming) {
return;
}
this.extendedPaddingStart = ViewCompat.getPaddingStart(this);
this.extendedPaddingEnd = ViewCompat.getPaddingEnd(this);
}
public void addOnShowAnimationListener(Animator.AnimatorListener animatorListener) {
this.showStrategy.addAnimationListener(animatorListener);
}
public void removeOnShowAnimationListener(Animator.AnimatorListener animatorListener) {
this.showStrategy.removeAnimationListener(animatorListener);
}
public void addOnHideAnimationListener(Animator.AnimatorListener animatorListener) {
this.hideStrategy.addAnimationListener(animatorListener);
}
public void removeOnHideAnimationListener(Animator.AnimatorListener animatorListener) {
this.hideStrategy.removeAnimationListener(animatorListener);
}
public void addOnShrinkAnimationListener(Animator.AnimatorListener animatorListener) {
this.shrinkStrategy.addAnimationListener(animatorListener);
}
public void removeOnShrinkAnimationListener(Animator.AnimatorListener animatorListener) {
this.shrinkStrategy.removeAnimationListener(animatorListener);
}
public void addOnExtendAnimationListener(Animator.AnimatorListener animatorListener) {
this.extendStrategy.addAnimationListener(animatorListener);
}
public void removeOnExtendAnimationListener(Animator.AnimatorListener animatorListener) {
this.extendStrategy.removeAnimationListener(animatorListener);
}
public void hide() {
performMotion(1, null);
}
public void hide(OnChangedCallback onChangedCallback) {
performMotion(1, onChangedCallback);
}
public void show() {
performMotion(0, null);
}
public void show(OnChangedCallback onChangedCallback) {
performMotion(0, onChangedCallback);
}
public void extend() {
performMotion(3, null);
}
public void extend(OnChangedCallback onChangedCallback) {
performMotion(3, onChangedCallback);
}
public void shrink() {
performMotion(2, null);
}
public void shrink(OnChangedCallback onChangedCallback) {
performMotion(2, onChangedCallback);
}
public MotionSpec getShowMotionSpec() {
return this.showStrategy.getMotionSpec();
}
public void setShowMotionSpec(MotionSpec motionSpec) {
this.showStrategy.setMotionSpec(motionSpec);
}
public void setShowMotionSpecResource(int i) {
setShowMotionSpec(MotionSpec.createFromResource(getContext(), i));
}
public MotionSpec getHideMotionSpec() {
return this.hideStrategy.getMotionSpec();
}
public void setHideMotionSpec(MotionSpec motionSpec) {
this.hideStrategy.setMotionSpec(motionSpec);
}
public void setHideMotionSpecResource(int i) {
setHideMotionSpec(MotionSpec.createFromResource(getContext(), i));
}
public MotionSpec getExtendMotionSpec() {
return this.extendStrategy.getMotionSpec();
}
public void setExtendMotionSpec(MotionSpec motionSpec) {
this.extendStrategy.setMotionSpec(motionSpec);
}
public void setExtendMotionSpecResource(int i) {
setExtendMotionSpec(MotionSpec.createFromResource(getContext(), i));
}
public MotionSpec getShrinkMotionSpec() {
return this.shrinkStrategy.getMotionSpec();
}
public void setShrinkMotionSpec(MotionSpec motionSpec) {
this.shrinkStrategy.setMotionSpec(motionSpec);
}
public void setShrinkMotionSpecResource(int i) {
setShrinkMotionSpec(MotionSpec.createFromResource(getContext(), i));
}
/* JADX INFO: Access modifiers changed from: private */
public void performMotion(int i, final OnChangedCallback onChangedCallback) {
final MotionStrategy motionStrategy;
if (i == 0) {
motionStrategy = this.showStrategy;
} else if (i == 1) {
motionStrategy = this.hideStrategy;
} else if (i == 2) {
motionStrategy = this.shrinkStrategy;
} else {
if (i != 3) {
throw new IllegalStateException("Unknown strategy type: " + i);
}
motionStrategy = this.extendStrategy;
}
if (motionStrategy.shouldCancel()) {
return;
}
if (!shouldAnimateVisibilityChange()) {
motionStrategy.performNow();
motionStrategy.onChange(onChangedCallback);
return;
}
if (i == 2) {
ViewGroup.LayoutParams layoutParams = getLayoutParams();
if (layoutParams != null) {
this.originalWidth = layoutParams.width;
this.originalHeight = layoutParams.height;
} else {
this.originalWidth = getWidth();
this.originalHeight = getHeight();
}
}
measure(0, 0);
AnimatorSet createAnimator = motionStrategy.createAnimator();
createAnimator.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton.5
private boolean cancelled;
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationStart(Animator animator) {
motionStrategy.onAnimationStart(animator);
this.cancelled = false;
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationCancel(Animator animator) {
this.cancelled = true;
motionStrategy.onAnimationCancel();
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
motionStrategy.onAnimationEnd();
if (this.cancelled) {
return;
}
motionStrategy.onChange(onChangedCallback);
}
});
Iterator<Animator.AnimatorListener> it = motionStrategy.getListeners().iterator();
while (it.hasNext()) {
createAnimator.addListener(it.next());
}
createAnimator.start();
}
/* JADX INFO: Access modifiers changed from: private */
public boolean isOrWillBeShown() {
return getVisibility() != 0 ? this.animState == 2 : this.animState != 1;
}
/* JADX INFO: Access modifiers changed from: private */
public boolean isOrWillBeHidden() {
return getVisibility() == 0 ? this.animState == 1 : this.animState != 2;
}
private boolean shouldAnimateVisibilityChange() {
return (ViewCompat.isLaidOut(this) || (!isOrWillBeShown() && this.animateShowBeforeLayout)) && !isInEditMode();
}
int getCollapsedSize() {
int i = this.collapsedSize;
return i < 0 ? (Math.min(ViewCompat.getPaddingStart(this), ViewCompat.getPaddingEnd(this)) * 2) + getIconSize() : i;
}
int getCollapsedPadding() {
return (getCollapsedSize() - getIconSize()) / 2;
}
/* loaded from: classes2.dex */
protected static class ExtendedFloatingActionButtonBehavior<T extends ExtendedFloatingActionButton> extends CoordinatorLayout.Behavior<T> {
private static final boolean AUTO_HIDE_DEFAULT = false;
private static final boolean AUTO_SHRINK_DEFAULT = true;
private boolean autoHideEnabled;
private boolean autoShrinkEnabled;
private OnChangedCallback internalAutoHideCallback;
private OnChangedCallback internalAutoShrinkCallback;
private Rect tmpRect;
public boolean isAutoHideEnabled() {
return this.autoHideEnabled;
}
public boolean isAutoShrinkEnabled() {
return this.autoShrinkEnabled;
}
public void setAutoHideEnabled(boolean z) {
this.autoHideEnabled = z;
}
public void setAutoShrinkEnabled(boolean z) {
this.autoShrinkEnabled = z;
}
void setInternalAutoHideCallback(OnChangedCallback onChangedCallback) {
this.internalAutoHideCallback = onChangedCallback;
}
void setInternalAutoShrinkCallback(OnChangedCallback onChangedCallback) {
this.internalAutoShrinkCallback = onChangedCallback;
}
public ExtendedFloatingActionButtonBehavior() {
this.autoHideEnabled = false;
this.autoShrinkEnabled = true;
}
public ExtendedFloatingActionButtonBehavior(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.ExtendedFloatingActionButton_Behavior_Layout);
this.autoHideEnabled = obtainStyledAttributes.getBoolean(R.styleable.ExtendedFloatingActionButton_Behavior_Layout_behavior_autoHide, false);
this.autoShrinkEnabled = obtainStyledAttributes.getBoolean(R.styleable.ExtendedFloatingActionButton_Behavior_Layout_behavior_autoShrink, true);
obtainStyledAttributes.recycle();
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean getInsetDodgeRect(CoordinatorLayout coordinatorLayout, ExtendedFloatingActionButton extendedFloatingActionButton, Rect rect) {
return super.getInsetDodgeRect(coordinatorLayout, (CoordinatorLayout) extendedFloatingActionButton, rect);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public void onAttachedToLayoutParams(CoordinatorLayout.LayoutParams layoutParams) {
if (layoutParams.dodgeInsetEdges == 0) {
layoutParams.dodgeInsetEdges = 80;
}
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onDependentViewChanged(CoordinatorLayout coordinatorLayout, ExtendedFloatingActionButton extendedFloatingActionButton, View view) {
if (view instanceof AppBarLayout) {
updateFabVisibilityForAppBarLayout(coordinatorLayout, (AppBarLayout) view, extendedFloatingActionButton);
return false;
}
if (!isBottomSheet(view)) {
return false;
}
updateFabVisibilityForBottomSheet(view, extendedFloatingActionButton);
return false;
}
private static boolean isBottomSheet(View view) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
return ((CoordinatorLayout.LayoutParams) layoutParams).getBehavior() instanceof BottomSheetBehavior;
}
return false;
}
private boolean shouldUpdateVisibility(View view, ExtendedFloatingActionButton extendedFloatingActionButton) {
return (this.autoHideEnabled || this.autoShrinkEnabled) && ((CoordinatorLayout.LayoutParams) extendedFloatingActionButton.getLayoutParams()).getAnchorId() == view.getId();
}
private boolean updateFabVisibilityForAppBarLayout(CoordinatorLayout coordinatorLayout, AppBarLayout appBarLayout, ExtendedFloatingActionButton extendedFloatingActionButton) {
if (!shouldUpdateVisibility(appBarLayout, extendedFloatingActionButton)) {
return false;
}
if (this.tmpRect == null) {
this.tmpRect = new Rect();
}
Rect rect = this.tmpRect;
DescendantOffsetUtils.getDescendantRect(coordinatorLayout, appBarLayout, rect);
if (rect.bottom <= appBarLayout.getMinimumHeightForVisibleOverlappingContent()) {
shrinkOrHide(extendedFloatingActionButton);
return true;
}
extendOrShow(extendedFloatingActionButton);
return true;
}
private boolean updateFabVisibilityForBottomSheet(View view, ExtendedFloatingActionButton extendedFloatingActionButton) {
if (!shouldUpdateVisibility(view, extendedFloatingActionButton)) {
return false;
}
if (view.getTop() < (extendedFloatingActionButton.getHeight() / 2) + ((CoordinatorLayout.LayoutParams) extendedFloatingActionButton.getLayoutParams()).topMargin) {
shrinkOrHide(extendedFloatingActionButton);
return true;
}
extendOrShow(extendedFloatingActionButton);
return true;
}
protected void shrinkOrHide(ExtendedFloatingActionButton extendedFloatingActionButton) {
boolean z = this.autoShrinkEnabled;
extendedFloatingActionButton.performMotion(z ? 2 : 1, z ? this.internalAutoShrinkCallback : this.internalAutoHideCallback);
}
protected void extendOrShow(ExtendedFloatingActionButton extendedFloatingActionButton) {
boolean z = this.autoShrinkEnabled;
extendedFloatingActionButton.performMotion(z ? 3 : 0, z ? this.internalAutoShrinkCallback : this.internalAutoHideCallback);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onLayoutChild(CoordinatorLayout coordinatorLayout, ExtendedFloatingActionButton extendedFloatingActionButton, int i) {
List<View> dependencies = coordinatorLayout.getDependencies(extendedFloatingActionButton);
int size = dependencies.size();
for (int i2 = 0; i2 < size; i2++) {
View view = dependencies.get(i2);
if (view instanceof AppBarLayout) {
if (updateFabVisibilityForAppBarLayout(coordinatorLayout, (AppBarLayout) view, extendedFloatingActionButton)) {
break;
}
} else {
if (isBottomSheet(view) && updateFabVisibilityForBottomSheet(view, extendedFloatingActionButton)) {
break;
}
}
}
coordinatorLayout.onLayoutChild(extendedFloatingActionButton, i);
return true;
}
}
/* loaded from: classes2.dex */
class ChangeSizeStrategy extends BaseMotionStrategy {
private final boolean extending;
private final Size size;
ChangeSizeStrategy(AnimatorTracker animatorTracker, Size size, boolean z) {
super(ExtendedFloatingActionButton.this, animatorTracker);
this.size = size;
this.extending = z;
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void performNow() {
ExtendedFloatingActionButton.this.isExtended = this.extending;
ViewGroup.LayoutParams layoutParams = ExtendedFloatingActionButton.this.getLayoutParams();
if (layoutParams == null) {
return;
}
if (!this.extending) {
ExtendedFloatingActionButton.this.originalWidth = layoutParams.width;
ExtendedFloatingActionButton.this.originalHeight = layoutParams.height;
}
layoutParams.width = this.size.getLayoutParams().width;
layoutParams.height = this.size.getLayoutParams().height;
ViewCompat.setPaddingRelative(ExtendedFloatingActionButton.this, this.size.getPaddingStart(), ExtendedFloatingActionButton.this.getPaddingTop(), this.size.getPaddingEnd(), ExtendedFloatingActionButton.this.getPaddingBottom());
ExtendedFloatingActionButton.this.requestLayout();
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void onChange(OnChangedCallback onChangedCallback) {
if (onChangedCallback == null) {
return;
}
if (this.extending) {
onChangedCallback.onExtended(ExtendedFloatingActionButton.this);
} else {
onChangedCallback.onShrunken(ExtendedFloatingActionButton.this);
}
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public int getDefaultMotionSpecResource() {
if (this.extending) {
return R.animator.mtrl_extended_fab_change_size_expand_motion_spec;
}
return R.animator.mtrl_extended_fab_change_size_collapse_motion_spec;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public AnimatorSet createAnimator() {
MotionSpec currentMotionSpec = getCurrentMotionSpec();
if (currentMotionSpec.hasPropertyValues(ViewHierarchyNode.JsonKeys.WIDTH)) {
PropertyValuesHolder[] propertyValues = currentMotionSpec.getPropertyValues(ViewHierarchyNode.JsonKeys.WIDTH);
propertyValues[0].setFloatValues(ExtendedFloatingActionButton.this.getWidth(), this.size.getWidth());
currentMotionSpec.setPropertyValues(ViewHierarchyNode.JsonKeys.WIDTH, propertyValues);
}
if (currentMotionSpec.hasPropertyValues(ViewHierarchyNode.JsonKeys.HEIGHT)) {
PropertyValuesHolder[] propertyValues2 = currentMotionSpec.getPropertyValues(ViewHierarchyNode.JsonKeys.HEIGHT);
propertyValues2[0].setFloatValues(ExtendedFloatingActionButton.this.getHeight(), this.size.getHeight());
currentMotionSpec.setPropertyValues(ViewHierarchyNode.JsonKeys.HEIGHT, propertyValues2);
}
if (currentMotionSpec.hasPropertyValues("paddingStart")) {
PropertyValuesHolder[] propertyValues3 = currentMotionSpec.getPropertyValues("paddingStart");
propertyValues3[0].setFloatValues(ViewCompat.getPaddingStart(ExtendedFloatingActionButton.this), this.size.getPaddingStart());
currentMotionSpec.setPropertyValues("paddingStart", propertyValues3);
}
if (currentMotionSpec.hasPropertyValues("paddingEnd")) {
PropertyValuesHolder[] propertyValues4 = currentMotionSpec.getPropertyValues("paddingEnd");
propertyValues4[0].setFloatValues(ViewCompat.getPaddingEnd(ExtendedFloatingActionButton.this), this.size.getPaddingEnd());
currentMotionSpec.setPropertyValues("paddingEnd", propertyValues4);
}
if (currentMotionSpec.hasPropertyValues("labelOpacity")) {
PropertyValuesHolder[] propertyValues5 = currentMotionSpec.getPropertyValues("labelOpacity");
boolean z = this.extending;
propertyValues5[0].setFloatValues(z ? 0.0f : 1.0f, z ? 1.0f : 0.0f);
currentMotionSpec.setPropertyValues("labelOpacity", propertyValues5);
}
return super.createAnimator(currentMotionSpec);
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationStart(Animator animator) {
super.onAnimationStart(animator);
ExtendedFloatingActionButton.this.isExtended = this.extending;
ExtendedFloatingActionButton.this.isTransforming = true;
ExtendedFloatingActionButton.this.setHorizontallyScrolling(true);
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationEnd() {
super.onAnimationEnd();
ExtendedFloatingActionButton.this.isTransforming = false;
ExtendedFloatingActionButton.this.setHorizontallyScrolling(false);
ViewGroup.LayoutParams layoutParams = ExtendedFloatingActionButton.this.getLayoutParams();
if (layoutParams == null) {
return;
}
layoutParams.width = this.size.getLayoutParams().width;
layoutParams.height = this.size.getLayoutParams().height;
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public boolean shouldCancel() {
return this.extending == ExtendedFloatingActionButton.this.isExtended || ExtendedFloatingActionButton.this.getIcon() == null || TextUtils.isEmpty(ExtendedFloatingActionButton.this.getText());
}
}
/* loaded from: classes2.dex */
class ShowStrategy extends BaseMotionStrategy {
public ShowStrategy(AnimatorTracker animatorTracker) {
super(ExtendedFloatingActionButton.this, animatorTracker);
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void performNow() {
ExtendedFloatingActionButton.this.setVisibility(0);
ExtendedFloatingActionButton.this.setAlpha(1.0f);
ExtendedFloatingActionButton.this.setScaleY(1.0f);
ExtendedFloatingActionButton.this.setScaleX(1.0f);
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void onChange(OnChangedCallback onChangedCallback) {
if (onChangedCallback != null) {
onChangedCallback.onShown(ExtendedFloatingActionButton.this);
}
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public int getDefaultMotionSpecResource() {
return R.animator.mtrl_extended_fab_show_motion_spec;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationStart(Animator animator) {
super.onAnimationStart(animator);
ExtendedFloatingActionButton.this.setVisibility(0);
ExtendedFloatingActionButton.this.animState = 2;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationEnd() {
super.onAnimationEnd();
ExtendedFloatingActionButton.this.animState = 0;
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public boolean shouldCancel() {
return ExtendedFloatingActionButton.this.isOrWillBeShown();
}
}
/* loaded from: classes2.dex */
class HideStrategy extends BaseMotionStrategy {
private boolean isCancelled;
public HideStrategy(AnimatorTracker animatorTracker) {
super(ExtendedFloatingActionButton.this, animatorTracker);
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void performNow() {
ExtendedFloatingActionButton.this.setVisibility(8);
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public void onChange(OnChangedCallback onChangedCallback) {
if (onChangedCallback != null) {
onChangedCallback.onHidden(ExtendedFloatingActionButton.this);
}
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public boolean shouldCancel() {
return ExtendedFloatingActionButton.this.isOrWillBeHidden();
}
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
public int getDefaultMotionSpecResource() {
return R.animator.mtrl_extended_fab_hide_motion_spec;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationStart(Animator animator) {
super.onAnimationStart(animator);
this.isCancelled = false;
ExtendedFloatingActionButton.this.setVisibility(0);
ExtendedFloatingActionButton.this.animState = 1;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationCancel() {
super.onAnimationCancel();
this.isCancelled = true;
}
@Override // com.google.android.material.floatingactionbutton.BaseMotionStrategy, com.google.android.material.floatingactionbutton.MotionStrategy
public void onAnimationEnd() {
super.onAnimationEnd();
ExtendedFloatingActionButton.this.animState = 0;
if (this.isCancelled) {
return;
}
ExtendedFloatingActionButton.this.setVisibility(8);
}
}
}