mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
137 lines
6.8 KiB
Java
137 lines
6.8 KiB
Java
package com.google.android.material.floatingactionbutton;
|
|
|
|
import android.animation.Animator;
|
|
import android.animation.AnimatorSet;
|
|
import android.content.Context;
|
|
import android.content.res.ColorStateList;
|
|
import android.graphics.Color;
|
|
import android.util.Property;
|
|
import android.view.View;
|
|
import androidx.core.util.Preconditions;
|
|
import com.google.android.material.animation.AnimationUtils;
|
|
import com.google.android.material.animation.AnimatorSetCompat;
|
|
import com.google.android.material.animation.MotionSpec;
|
|
import io.sentry.protocol.ViewHierarchyNode;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* loaded from: classes2.dex */
|
|
public abstract class BaseMotionStrategy implements MotionStrategy {
|
|
private final Context context;
|
|
private MotionSpec defaultMotionSpec;
|
|
private final ExtendedFloatingActionButton fab;
|
|
private final ArrayList<Animator.AnimatorListener> listeners = new ArrayList<>();
|
|
private MotionSpec motionSpec;
|
|
private final AnimatorTracker tracker;
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public final List<Animator.AnimatorListener> getListeners() {
|
|
return this.listeners;
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public MotionSpec getMotionSpec() {
|
|
return this.motionSpec;
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public final void setMotionSpec(MotionSpec motionSpec) {
|
|
this.motionSpec = motionSpec;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public BaseMotionStrategy(ExtendedFloatingActionButton extendedFloatingActionButton, AnimatorTracker animatorTracker) {
|
|
this.fab = extendedFloatingActionButton;
|
|
this.context = extendedFloatingActionButton.getContext();
|
|
this.tracker = animatorTracker;
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public final MotionSpec getCurrentMotionSpec() {
|
|
MotionSpec motionSpec = this.motionSpec;
|
|
if (motionSpec != null) {
|
|
return motionSpec;
|
|
}
|
|
if (this.defaultMotionSpec == null) {
|
|
this.defaultMotionSpec = MotionSpec.createFromResource(this.context, getDefaultMotionSpecResource());
|
|
}
|
|
return (MotionSpec) Preconditions.checkNotNull(this.defaultMotionSpec);
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public final void addAnimationListener(Animator.AnimatorListener animatorListener) {
|
|
this.listeners.add(animatorListener);
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public final void removeAnimationListener(Animator.AnimatorListener animatorListener) {
|
|
this.listeners.remove(animatorListener);
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public void onAnimationStart(Animator animator) {
|
|
this.tracker.onNextAnimationStart(animator);
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public void onAnimationEnd() {
|
|
this.tracker.clear();
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public void onAnimationCancel() {
|
|
this.tracker.clear();
|
|
}
|
|
|
|
@Override // com.google.android.material.floatingactionbutton.MotionStrategy
|
|
public AnimatorSet createAnimator() {
|
|
return createAnimator(getCurrentMotionSpec());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public AnimatorSet createAnimator(MotionSpec motionSpec) {
|
|
ArrayList arrayList = new ArrayList();
|
|
if (motionSpec.hasPropertyValues("opacity")) {
|
|
arrayList.add(motionSpec.getAnimator("opacity", this.fab, View.ALPHA));
|
|
}
|
|
if (motionSpec.hasPropertyValues("scale")) {
|
|
arrayList.add(motionSpec.getAnimator("scale", this.fab, View.SCALE_Y));
|
|
arrayList.add(motionSpec.getAnimator("scale", this.fab, View.SCALE_X));
|
|
}
|
|
if (motionSpec.hasPropertyValues(ViewHierarchyNode.JsonKeys.WIDTH)) {
|
|
arrayList.add(motionSpec.getAnimator(ViewHierarchyNode.JsonKeys.WIDTH, this.fab, ExtendedFloatingActionButton.WIDTH));
|
|
}
|
|
if (motionSpec.hasPropertyValues(ViewHierarchyNode.JsonKeys.HEIGHT)) {
|
|
arrayList.add(motionSpec.getAnimator(ViewHierarchyNode.JsonKeys.HEIGHT, this.fab, ExtendedFloatingActionButton.HEIGHT));
|
|
}
|
|
if (motionSpec.hasPropertyValues("paddingStart")) {
|
|
arrayList.add(motionSpec.getAnimator("paddingStart", this.fab, ExtendedFloatingActionButton.PADDING_START));
|
|
}
|
|
if (motionSpec.hasPropertyValues("paddingEnd")) {
|
|
arrayList.add(motionSpec.getAnimator("paddingEnd", this.fab, ExtendedFloatingActionButton.PADDING_END));
|
|
}
|
|
if (motionSpec.hasPropertyValues("labelOpacity")) {
|
|
arrayList.add(motionSpec.getAnimator("labelOpacity", this.fab, new Property<ExtendedFloatingActionButton, Float>(Float.class, "LABEL_OPACITY_PROPERTY") { // from class: com.google.android.material.floatingactionbutton.BaseMotionStrategy.1
|
|
@Override // android.util.Property
|
|
public Float get(ExtendedFloatingActionButton extendedFloatingActionButton) {
|
|
return Float.valueOf(AnimationUtils.lerp(0.0f, 1.0f, (Color.alpha(extendedFloatingActionButton.getCurrentTextColor()) / 255.0f) / Color.alpha(extendedFloatingActionButton.originalTextCsl.getColorForState(extendedFloatingActionButton.getDrawableState(), BaseMotionStrategy.this.fab.originalTextCsl.getDefaultColor()))));
|
|
}
|
|
|
|
@Override // android.util.Property
|
|
public void set(ExtendedFloatingActionButton extendedFloatingActionButton, Float f) {
|
|
int colorForState = extendedFloatingActionButton.originalTextCsl.getColorForState(extendedFloatingActionButton.getDrawableState(), BaseMotionStrategy.this.fab.originalTextCsl.getDefaultColor());
|
|
ColorStateList valueOf = ColorStateList.valueOf(Color.argb((int) (AnimationUtils.lerp(0.0f, Color.alpha(colorForState) / 255.0f, f.floatValue()) * 255.0f), Color.red(colorForState), Color.green(colorForState), Color.blue(colorForState)));
|
|
if (f.floatValue() == 1.0f) {
|
|
extendedFloatingActionButton.silentlyUpdateTextColor(extendedFloatingActionButton.originalTextCsl);
|
|
} else {
|
|
extendedFloatingActionButton.silentlyUpdateTextColor(valueOf);
|
|
}
|
|
}
|
|
}));
|
|
}
|
|
AnimatorSet animatorSet = new AnimatorSet();
|
|
AnimatorSetCompat.playTogether(animatorSet, arrayList);
|
|
return animatorSet;
|
|
}
|
|
}
|