Rabbit-R1/android (non root)/java/sources/com/google/android/material/search/SearchBarAnimationHelper.java

396 lines
20 KiB
Java
Raw Normal View History

2024-05-21 21:08:36 +00:00
package com.google.android.material.search;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.appcompat.widget.ActionMenuView;
import androidx.core.view.ViewCompat;
import com.google.android.material.animation.AnimatableView;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.internal.ExpandCollapseAnimationHelper;
import com.google.android.material.internal.MultiViewUpdateListener;
import com.google.android.material.internal.ToolbarUtils;
import com.google.android.material.internal.ViewUtils;
import com.google.android.material.search.SearchBar;
import com.google.android.material.shape.MaterialShapeDrawable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes2.dex */
public class SearchBarAnimationHelper {
private static final long COLLAPSE_DURATION_MS = 250;
private static final long COLLAPSE_FADE_IN_CHILDREN_DURATION_MS = 100;
private static final long EXPAND_DURATION_MS = 300;
private static final long EXPAND_FADE_OUT_CHILDREN_DURATION_MS = 75;
private static final long ON_LOAD_ANIM_CENTER_VIEW_DEFAULT_FADE_DURATION_MS = 250;
private static final long ON_LOAD_ANIM_CENTER_VIEW_DEFAULT_FADE_IN_START_DELAY_MS = 500;
private static final long ON_LOAD_ANIM_CENTER_VIEW_DEFAULT_FADE_OUT_START_DELAY_MS = 750;
private static final long ON_LOAD_ANIM_SECONDARY_DURATION_MS = 250;
private static final long ON_LOAD_ANIM_SECONDARY_START_DELAY_MS = 250;
private boolean collapsing;
private Animator defaultCenterViewAnimator;
private boolean expanding;
private Animator secondaryViewAnimator;
private final Set<SearchBar.OnLoadAnimationCallback> onLoadAnimationCallbacks = new LinkedHashSet();
private final Set<AnimatorListenerAdapter> expandAnimationListeners = new LinkedHashSet();
private final Set<AnimatorListenerAdapter> collapseAnimationListeners = new LinkedHashSet();
private boolean onLoadAnimationFadeInEnabled = true;
private Animator runningExpandOrCollapseAnimator = null;
/* JADX INFO: Access modifiers changed from: private */
/* loaded from: classes2.dex */
public interface OnLoadAnimationInvocation {
void invoke(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback);
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean isCollapsing() {
return this.collapsing;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean isExpanding() {
return this.expanding;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean isOnLoadAnimationFadeInEnabled() {
return this.onLoadAnimationFadeInEnabled;
}
/* JADX INFO: Access modifiers changed from: package-private */
public void setOnLoadAnimationFadeInEnabled(boolean z) {
this.onLoadAnimationFadeInEnabled = z;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* JADX WARN: Multi-variable type inference failed */
public void startOnLoadAnimation(SearchBar searchBar) {
dispatchOnLoadAnimation(new OnLoadAnimationInvocation() { // from class: com.google.android.material.search.SearchBarAnimationHelper$$ExternalSyntheticLambda3
@Override // com.google.android.material.search.SearchBarAnimationHelper.OnLoadAnimationInvocation
public final void invoke(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback) {
onLoadAnimationCallback.onAnimationStart();
}
});
TextView textView = searchBar.getTextView();
final View centerView = searchBar.getCenterView();
View secondaryActionMenuItemView = ToolbarUtils.getSecondaryActionMenuItemView(searchBar);
final Animator secondaryViewAnimator = getSecondaryViewAnimator(textView, secondaryActionMenuItemView);
secondaryViewAnimator.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.1
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
SearchBarAnimationHelper.this.dispatchOnLoadAnimation(new OnLoadAnimationInvocation() { // from class: com.google.android.material.search.SearchBarAnimationHelper$1$$ExternalSyntheticLambda0
@Override // com.google.android.material.search.SearchBarAnimationHelper.OnLoadAnimationInvocation
public final void invoke(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback) {
onLoadAnimationCallback.onAnimationEnd();
}
});
}
});
this.secondaryViewAnimator = secondaryViewAnimator;
textView.setAlpha(0.0f);
if (secondaryActionMenuItemView != null) {
secondaryActionMenuItemView.setAlpha(0.0f);
}
if (centerView instanceof AnimatableView) {
Objects.requireNonNull(secondaryViewAnimator);
((AnimatableView) centerView).startAnimation(new AnimatableView.Listener() { // from class: com.google.android.material.search.SearchBarAnimationHelper$$ExternalSyntheticLambda4
@Override // com.google.android.material.animation.AnimatableView.Listener
public final void onAnimationEnd() {
secondaryViewAnimator.start();
}
});
} else {
if (centerView != 0) {
centerView.setAlpha(0.0f);
centerView.setVisibility(0);
Animator defaultCenterViewAnimator = getDefaultCenterViewAnimator(centerView);
this.defaultCenterViewAnimator = defaultCenterViewAnimator;
defaultCenterViewAnimator.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.2
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
centerView.setVisibility(8);
secondaryViewAnimator.start();
}
});
defaultCenterViewAnimator.start();
return;
}
secondaryViewAnimator.start();
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* JADX WARN: Multi-variable type inference failed */
public void stopOnLoadAnimation(SearchBar searchBar) {
Animator animator = this.secondaryViewAnimator;
if (animator != null) {
animator.end();
}
Animator animator2 = this.defaultCenterViewAnimator;
if (animator2 != null) {
animator2.end();
}
View centerView = searchBar.getCenterView();
if (centerView instanceof AnimatableView) {
((AnimatableView) centerView).stopAnimation();
}
if (centerView != 0) {
centerView.setAlpha(0.0f);
}
}
/* JADX INFO: Access modifiers changed from: package-private */
public void addOnLoadAnimationCallback(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback) {
this.onLoadAnimationCallbacks.add(onLoadAnimationCallback);
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean removeOnLoadAnimationCallback(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback) {
return this.onLoadAnimationCallbacks.remove(onLoadAnimationCallback);
}
/* JADX INFO: Access modifiers changed from: private */
public void dispatchOnLoadAnimation(OnLoadAnimationInvocation onLoadAnimationInvocation) {
Iterator<SearchBar.OnLoadAnimationCallback> it = this.onLoadAnimationCallbacks.iterator();
while (it.hasNext()) {
onLoadAnimationInvocation.invoke(it.next());
}
}
private Animator getDefaultCenterViewAnimator(View view) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(0.0f, 1.0f);
ofFloat.addUpdateListener(MultiViewUpdateListener.alphaListener(view));
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat.setDuration(this.onLoadAnimationFadeInEnabled ? 250L : 0L);
ofFloat.setStartDelay(this.onLoadAnimationFadeInEnabled ? 500L : 0L);
ValueAnimator ofFloat2 = ValueAnimator.ofFloat(1.0f, 0.0f);
ofFloat2.addUpdateListener(MultiViewUpdateListener.alphaListener(view));
ofFloat2.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat2.setDuration(250L);
ofFloat2.setStartDelay(ON_LOAD_ANIM_CENTER_VIEW_DEFAULT_FADE_OUT_START_DELAY_MS);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(ofFloat, ofFloat2);
return animatorSet;
}
private Animator getSecondaryViewAnimator(TextView textView, View view) {
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setStartDelay(250L);
animatorSet.play(getTextViewAnimator(textView));
if (view != null) {
animatorSet.play(getSecondaryActionMenuItemAnimator(view));
}
return animatorSet;
}
private Animator getTextViewAnimator(TextView textView) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(0.0f, 1.0f);
ofFloat.addUpdateListener(MultiViewUpdateListener.alphaListener(textView));
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat.setDuration(250L);
return ofFloat;
}
private Animator getSecondaryActionMenuItemAnimator(View view) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(0.0f, 1.0f);
ofFloat.addUpdateListener(MultiViewUpdateListener.alphaListener(view));
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat.setDuration(250L);
return ofFloat;
}
/* JADX INFO: Access modifiers changed from: package-private */
public void startExpandAnimation(final SearchBar searchBar, final View view, final AppBarLayout appBarLayout, final boolean z) {
Animator animator;
if (isCollapsing() && (animator = this.runningExpandOrCollapseAnimator) != null) {
animator.cancel();
}
this.expanding = true;
view.setVisibility(4);
view.post(new Runnable() { // from class: com.google.android.material.search.SearchBarAnimationHelper$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
SearchBarAnimationHelper.this.m5538x1b96b119(searchBar, view, appBarLayout, z);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$startExpandAnimation$0$com-google-android-material-search-SearchBarAnimationHelper, reason: not valid java name */
public /* synthetic */ void m5538x1b96b119(SearchBar searchBar, View view, AppBarLayout appBarLayout, boolean z) {
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(getFadeOutChildrenAnimator(searchBar, view), getExpandAnimator(searchBar, view, appBarLayout));
animatorSet.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.3
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
SearchBarAnimationHelper.this.runningExpandOrCollapseAnimator = null;
}
});
Iterator<AnimatorListenerAdapter> it = this.expandAnimationListeners.iterator();
while (it.hasNext()) {
animatorSet.addListener(it.next());
}
if (z) {
animatorSet.setDuration(0L);
}
animatorSet.start();
this.runningExpandOrCollapseAnimator = animatorSet;
}
private Animator getExpandAnimator(final SearchBar searchBar, View view, AppBarLayout appBarLayout) {
return getExpandCollapseAnimationHelper(searchBar, view, appBarLayout).setDuration(EXPAND_DURATION_MS).addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.4
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationStart(Animator animator) {
searchBar.setVisibility(4);
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
SearchBarAnimationHelper.this.expanding = false;
}
}).getExpandAnimator();
}
/* JADX INFO: Access modifiers changed from: package-private */
public void addExpandAnimationListener(AnimatorListenerAdapter animatorListenerAdapter) {
this.expandAnimationListeners.add(animatorListenerAdapter);
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean removeExpandAnimationListener(AnimatorListenerAdapter animatorListenerAdapter) {
return this.expandAnimationListeners.remove(animatorListenerAdapter);
}
/* JADX INFO: Access modifiers changed from: package-private */
public void startCollapseAnimation(SearchBar searchBar, View view, AppBarLayout appBarLayout, boolean z) {
Animator animator;
if (isExpanding() && (animator = this.runningExpandOrCollapseAnimator) != null) {
animator.cancel();
}
this.collapsing = true;
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(getCollapseAnimator(searchBar, view, appBarLayout), getFadeInChildrenAnimator(searchBar));
animatorSet.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.5
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator2) {
SearchBarAnimationHelper.this.runningExpandOrCollapseAnimator = null;
}
});
Iterator<AnimatorListenerAdapter> it = this.collapseAnimationListeners.iterator();
while (it.hasNext()) {
animatorSet.addListener(it.next());
}
if (z) {
animatorSet.setDuration(0L);
}
animatorSet.start();
this.runningExpandOrCollapseAnimator = animatorSet;
}
private Animator getCollapseAnimator(final SearchBar searchBar, View view, AppBarLayout appBarLayout) {
return getExpandCollapseAnimationHelper(searchBar, view, appBarLayout).setDuration(250L).addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.search.SearchBarAnimationHelper.6
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationStart(Animator animator) {
searchBar.stopOnLoadAnimation();
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
searchBar.setVisibility(0);
SearchBarAnimationHelper.this.collapsing = false;
}
}).getCollapseAnimator();
}
/* JADX INFO: Access modifiers changed from: package-private */
public void addCollapseAnimationListener(AnimatorListenerAdapter animatorListenerAdapter) {
this.collapseAnimationListeners.add(animatorListenerAdapter);
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean removeCollapseAnimationListener(AnimatorListenerAdapter animatorListenerAdapter) {
return this.collapseAnimationListeners.remove(animatorListenerAdapter);
}
private ExpandCollapseAnimationHelper getExpandCollapseAnimationHelper(SearchBar searchBar, View view, AppBarLayout appBarLayout) {
return new ExpandCollapseAnimationHelper(searchBar, view).setAdditionalUpdateListener(getExpandedViewBackgroundUpdateListener(searchBar, view)).setCollapsedViewOffsetY(appBarLayout != null ? appBarLayout.getTop() : 0).addEndAnchoredViews(getEndAnchoredViews(view));
}
private ValueAnimator.AnimatorUpdateListener getExpandedViewBackgroundUpdateListener(SearchBar searchBar, final View view) {
final MaterialShapeDrawable createWithElevationOverlay = MaterialShapeDrawable.createWithElevationOverlay(view.getContext());
createWithElevationOverlay.setCornerSize(searchBar.getCornerSize());
createWithElevationOverlay.setElevation(ViewCompat.getElevation(searchBar));
return new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.search.SearchBarAnimationHelper$$ExternalSyntheticLambda1
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
public final void onAnimationUpdate(ValueAnimator valueAnimator) {
SearchBarAnimationHelper.lambda$getExpandedViewBackgroundUpdateListener$1(MaterialShapeDrawable.this, view, valueAnimator);
}
};
}
/* JADX INFO: Access modifiers changed from: package-private */
public static /* synthetic */ void lambda$getExpandedViewBackgroundUpdateListener$1(MaterialShapeDrawable materialShapeDrawable, View view, ValueAnimator valueAnimator) {
materialShapeDrawable.setInterpolation(1.0f - valueAnimator.getAnimatedFraction());
ViewCompat.setBackground(view, materialShapeDrawable);
view.setAlpha(1.0f);
}
private Animator getFadeOutChildrenAnimator(SearchBar searchBar, final View view) {
List<View> fadeChildren = getFadeChildren(searchBar);
ValueAnimator ofFloat = ValueAnimator.ofFloat(1.0f, 0.0f);
ofFloat.addUpdateListener(MultiViewUpdateListener.alphaListener(fadeChildren));
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.search.SearchBarAnimationHelper$$ExternalSyntheticLambda2
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
public final void onAnimationUpdate(ValueAnimator valueAnimator) {
view.setAlpha(0.0f);
}
});
ofFloat.setDuration(75L);
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
return ofFloat;
}
private Animator getFadeInChildrenAnimator(SearchBar searchBar) {
List<View> fadeChildren = getFadeChildren(searchBar);
ValueAnimator ofFloat = ValueAnimator.ofFloat(0.0f, 1.0f);
ofFloat.addUpdateListener(MultiViewUpdateListener.alphaListener(fadeChildren));
ofFloat.setDuration(100L);
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
return ofFloat;
}
private List<View> getFadeChildren(SearchBar searchBar) {
List<View> children = ViewUtils.getChildren(searchBar);
if (searchBar.getCenterView() != null) {
children.remove(searchBar.getCenterView());
}
return children;
}
private List<View> getEndAnchoredViews(View view) {
boolean isLayoutRtl = ViewUtils.isLayoutRtl(view);
ArrayList arrayList = new ArrayList();
if (view instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View childAt = viewGroup.getChildAt(i);
if ((!isLayoutRtl && (childAt instanceof ActionMenuView)) || (isLayoutRtl && !(childAt instanceof ActionMenuView))) {
arrayList.add(childAt);
}
}
}
return arrayList;
}
}