package androidx.recyclerview.widget; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.view.View; import android.view.ViewPropertyAnimator; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* loaded from: classes2.dex */ public class DefaultItemAnimator extends SimpleItemAnimator { private static final boolean DEBUG = false; private static TimeInterpolator sDefaultInterpolator; private ArrayList mPendingRemovals = new ArrayList<>(); private ArrayList mPendingAdditions = new ArrayList<>(); private ArrayList mPendingMoves = new ArrayList<>(); private ArrayList mPendingChanges = new ArrayList<>(); ArrayList> mAdditionsList = new ArrayList<>(); ArrayList> mMovesList = new ArrayList<>(); ArrayList> mChangesList = new ArrayList<>(); ArrayList mAddAnimations = new ArrayList<>(); ArrayList mMoveAnimations = new ArrayList<>(); ArrayList mRemoveAnimations = new ArrayList<>(); ArrayList mChangeAnimations = new ArrayList<>(); /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes2.dex */ public static class MoveInfo { public int fromX; public int fromY; public RecyclerView.ViewHolder holder; public int toX; public int toY; MoveInfo(RecyclerView.ViewHolder viewHolder, int i, int i2, int i3, int i4) { this.holder = viewHolder; this.fromX = i; this.fromY = i2; this.toX = i3; this.toY = i4; } } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes2.dex */ public static class ChangeInfo { public int fromX; public int fromY; public RecyclerView.ViewHolder newHolder; public RecyclerView.ViewHolder oldHolder; public int toX; public int toY; private ChangeInfo(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2) { this.oldHolder = viewHolder; this.newHolder = viewHolder2; } ChangeInfo(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2, int i, int i2, int i3, int i4) { this(viewHolder, viewHolder2); this.fromX = i; this.fromY = i2; this.toX = i3; this.toY = i4; } public String toString() { return "ChangeInfo{oldHolder=" + this.oldHolder + ", newHolder=" + this.newHolder + ", fromX=" + this.fromX + ", fromY=" + this.fromY + ", toX=" + this.toX + ", toY=" + this.toY + '}'; } } @Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator public void runPendingAnimations() { boolean z = !this.mPendingRemovals.isEmpty(); boolean z2 = !this.mPendingMoves.isEmpty(); boolean z3 = !this.mPendingChanges.isEmpty(); boolean z4 = !this.mPendingAdditions.isEmpty(); if (z || z2 || z4 || z3) { Iterator it = this.mPendingRemovals.iterator(); while (it.hasNext()) { animateRemoveImpl(it.next()); } this.mPendingRemovals.clear(); if (z2) { final ArrayList arrayList = new ArrayList<>(); arrayList.addAll(this.mPendingMoves); this.mMovesList.add(arrayList); this.mPendingMoves.clear(); Runnable runnable = new Runnable() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.1 @Override // java.lang.Runnable public void run() { Iterator it2 = arrayList.iterator(); while (it2.hasNext()) { MoveInfo moveInfo = (MoveInfo) it2.next(); DefaultItemAnimator.this.animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY, moveInfo.toX, moveInfo.toY); } arrayList.clear(); DefaultItemAnimator.this.mMovesList.remove(arrayList); } }; if (z) { ViewCompat.postOnAnimationDelayed(arrayList.get(0).holder.itemView, runnable, getRemoveDuration()); } else { runnable.run(); } } if (z3) { final ArrayList arrayList2 = new ArrayList<>(); arrayList2.addAll(this.mPendingChanges); this.mChangesList.add(arrayList2); this.mPendingChanges.clear(); Runnable runnable2 = new Runnable() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.2 @Override // java.lang.Runnable public void run() { Iterator it2 = arrayList2.iterator(); while (it2.hasNext()) { DefaultItemAnimator.this.animateChangeImpl((ChangeInfo) it2.next()); } arrayList2.clear(); DefaultItemAnimator.this.mChangesList.remove(arrayList2); } }; if (z) { ViewCompat.postOnAnimationDelayed(arrayList2.get(0).oldHolder.itemView, runnable2, getRemoveDuration()); } else { runnable2.run(); } } if (z4) { final ArrayList arrayList3 = new ArrayList<>(); arrayList3.addAll(this.mPendingAdditions); this.mAdditionsList.add(arrayList3); this.mPendingAdditions.clear(); Runnable runnable3 = new Runnable() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.3 @Override // java.lang.Runnable public void run() { Iterator it2 = arrayList3.iterator(); while (it2.hasNext()) { DefaultItemAnimator.this.animateAddImpl((RecyclerView.ViewHolder) it2.next()); } arrayList3.clear(); DefaultItemAnimator.this.mAdditionsList.remove(arrayList3); } }; if (z || z2 || z3) { ViewCompat.postOnAnimationDelayed(arrayList3.get(0).itemView, runnable3, (z ? getRemoveDuration() : 0L) + Math.max(z2 ? getMoveDuration() : 0L, z3 ? getChangeDuration() : 0L)); } else { runnable3.run(); } } } } @Override // androidx.recyclerview.widget.SimpleItemAnimator public boolean animateRemove(RecyclerView.ViewHolder viewHolder) { resetAnimation(viewHolder); this.mPendingRemovals.add(viewHolder); return true; } private void animateRemoveImpl(final RecyclerView.ViewHolder viewHolder) { final View view = viewHolder.itemView; final ViewPropertyAnimator animate = view.animate(); this.mRemoveAnimations.add(viewHolder); animate.setDuration(getRemoveDuration()).alpha(0.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.4 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { DefaultItemAnimator.this.dispatchRemoveStarting(viewHolder); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { animate.setListener(null); view.setAlpha(1.0f); DefaultItemAnimator.this.dispatchRemoveFinished(viewHolder); DefaultItemAnimator.this.mRemoveAnimations.remove(viewHolder); DefaultItemAnimator.this.dispatchFinishedWhenDone(); } }).start(); } @Override // androidx.recyclerview.widget.SimpleItemAnimator public boolean animateAdd(RecyclerView.ViewHolder viewHolder) { resetAnimation(viewHolder); viewHolder.itemView.setAlpha(0.0f); this.mPendingAdditions.add(viewHolder); return true; } void animateAddImpl(final RecyclerView.ViewHolder viewHolder) { final View view = viewHolder.itemView; final ViewPropertyAnimator animate = view.animate(); this.mAddAnimations.add(viewHolder); animate.alpha(1.0f).setDuration(getAddDuration()).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.5 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { DefaultItemAnimator.this.dispatchAddStarting(viewHolder); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationCancel(Animator animator) { view.setAlpha(1.0f); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { animate.setListener(null); DefaultItemAnimator.this.dispatchAddFinished(viewHolder); DefaultItemAnimator.this.mAddAnimations.remove(viewHolder); DefaultItemAnimator.this.dispatchFinishedWhenDone(); } }).start(); } @Override // androidx.recyclerview.widget.SimpleItemAnimator public boolean animateMove(RecyclerView.ViewHolder viewHolder, int i, int i2, int i3, int i4) { View view = viewHolder.itemView; int translationX = i + ((int) viewHolder.itemView.getTranslationX()); int translationY = i2 + ((int) viewHolder.itemView.getTranslationY()); resetAnimation(viewHolder); int i5 = i3 - translationX; int i6 = i4 - translationY; if (i5 == 0 && i6 == 0) { dispatchMoveFinished(viewHolder); return false; } if (i5 != 0) { view.setTranslationX(-i5); } if (i6 != 0) { view.setTranslationY(-i6); } this.mPendingMoves.add(new MoveInfo(viewHolder, translationX, translationY, i3, i4)); return true; } void animateMoveImpl(final RecyclerView.ViewHolder viewHolder, int i, int i2, int i3, int i4) { final View view = viewHolder.itemView; final int i5 = i3 - i; final int i6 = i4 - i2; if (i5 != 0) { view.animate().translationX(0.0f); } if (i6 != 0) { view.animate().translationY(0.0f); } final ViewPropertyAnimator animate = view.animate(); this.mMoveAnimations.add(viewHolder); animate.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.6 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { DefaultItemAnimator.this.dispatchMoveStarting(viewHolder); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationCancel(Animator animator) { if (i5 != 0) { view.setTranslationX(0.0f); } if (i6 != 0) { view.setTranslationY(0.0f); } } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { animate.setListener(null); DefaultItemAnimator.this.dispatchMoveFinished(viewHolder); DefaultItemAnimator.this.mMoveAnimations.remove(viewHolder); DefaultItemAnimator.this.dispatchFinishedWhenDone(); } }).start(); } @Override // androidx.recyclerview.widget.SimpleItemAnimator public boolean animateChange(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2, int i, int i2, int i3, int i4) { if (viewHolder == viewHolder2) { return animateMove(viewHolder, i, i2, i3, i4); } float translationX = viewHolder.itemView.getTranslationX(); float translationY = viewHolder.itemView.getTranslationY(); float alpha = viewHolder.itemView.getAlpha(); resetAnimation(viewHolder); int i5 = (int) ((i3 - i) - translationX); int i6 = (int) ((i4 - i2) - translationY); viewHolder.itemView.setTranslationX(translationX); viewHolder.itemView.setTranslationY(translationY); viewHolder.itemView.setAlpha(alpha); if (viewHolder2 != null) { resetAnimation(viewHolder2); viewHolder2.itemView.setTranslationX(-i5); viewHolder2.itemView.setTranslationY(-i6); viewHolder2.itemView.setAlpha(0.0f); } this.mPendingChanges.add(new ChangeInfo(viewHolder, viewHolder2, i, i2, i3, i4)); return true; } void animateChangeImpl(final ChangeInfo changeInfo) { RecyclerView.ViewHolder viewHolder = changeInfo.oldHolder; final View view = viewHolder == null ? null : viewHolder.itemView; RecyclerView.ViewHolder viewHolder2 = changeInfo.newHolder; final View view2 = viewHolder2 != null ? viewHolder2.itemView : null; if (view != null) { final ViewPropertyAnimator duration = view.animate().setDuration(getChangeDuration()); this.mChangeAnimations.add(changeInfo.oldHolder); duration.translationX(changeInfo.toX - changeInfo.fromX); duration.translationY(changeInfo.toY - changeInfo.fromY); duration.alpha(0.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.7 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { DefaultItemAnimator.this.dispatchChangeStarting(changeInfo.oldHolder, true); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { duration.setListener(null); view.setAlpha(1.0f); view.setTranslationX(0.0f); view.setTranslationY(0.0f); DefaultItemAnimator.this.dispatchChangeFinished(changeInfo.oldHolder, true); DefaultItemAnimator.this.mChangeAnimations.remove(changeInfo.oldHolder); DefaultItemAnimator.this.dispatchFinishedWhenDone(); } }).start(); } if (view2 != null) { final ViewPropertyAnimator animate = view2.animate(); this.mChangeAnimations.add(changeInfo.newHolder); animate.translationX(0.0f).translationY(0.0f).setDuration(getChangeDuration()).alpha(1.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.8 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { DefaultItemAnimator.this.dispatchChangeStarting(changeInfo.newHolder, false); } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { animate.setListener(null); view2.setAlpha(1.0f); view2.setTranslationX(0.0f); view2.setTranslationY(0.0f); DefaultItemAnimator.this.dispatchChangeFinished(changeInfo.newHolder, false); DefaultItemAnimator.this.mChangeAnimations.remove(changeInfo.newHolder); DefaultItemAnimator.this.dispatchFinishedWhenDone(); } }).start(); } } private void endChangeAnimation(List list, RecyclerView.ViewHolder viewHolder) { for (int size = list.size() - 1; size >= 0; size--) { ChangeInfo changeInfo = list.get(size); if (endChangeAnimationIfNecessary(changeInfo, viewHolder) && changeInfo.oldHolder == null && changeInfo.newHolder == null) { list.remove(changeInfo); } } } private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) { if (changeInfo.oldHolder != null) { endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder); } if (changeInfo.newHolder != null) { endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder); } } private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder viewHolder) { boolean z = false; if (changeInfo.newHolder == viewHolder) { changeInfo.newHolder = null; } else { if (changeInfo.oldHolder != viewHolder) { return false; } changeInfo.oldHolder = null; z = true; } viewHolder.itemView.setAlpha(1.0f); viewHolder.itemView.setTranslationX(0.0f); viewHolder.itemView.setTranslationY(0.0f); dispatchChangeFinished(viewHolder, z); return true; } @Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator public void endAnimation(RecyclerView.ViewHolder viewHolder) { View view = viewHolder.itemView; view.animate().cancel(); int size = this.mPendingMoves.size(); while (true) { size--; if (size < 0) { break; } if (this.mPendingMoves.get(size).holder == viewHolder) { view.setTranslationY(0.0f); view.setTranslationX(0.0f); dispatchMoveFinished(viewHolder); this.mPendingMoves.remove(size); } } endChangeAnimation(this.mPendingChanges, viewHolder); if (this.mPendingRemovals.remove(viewHolder)) { view.setAlpha(1.0f); dispatchRemoveFinished(viewHolder); } if (this.mPendingAdditions.remove(viewHolder)) { view.setAlpha(1.0f); dispatchAddFinished(viewHolder); } for (int size2 = this.mChangesList.size() - 1; size2 >= 0; size2--) { ArrayList arrayList = this.mChangesList.get(size2); endChangeAnimation(arrayList, viewHolder); if (arrayList.isEmpty()) { this.mChangesList.remove(size2); } } for (int size3 = this.mMovesList.size() - 1; size3 >= 0; size3--) { ArrayList arrayList2 = this.mMovesList.get(size3); int size4 = arrayList2.size() - 1; while (true) { if (size4 < 0) { break; } if (arrayList2.get(size4).holder == viewHolder) { view.setTranslationY(0.0f); view.setTranslationX(0.0f); dispatchMoveFinished(viewHolder); arrayList2.remove(size4); if (arrayList2.isEmpty()) { this.mMovesList.remove(size3); } } else { size4--; } } } for (int size5 = this.mAdditionsList.size() - 1; size5 >= 0; size5--) { ArrayList arrayList3 = this.mAdditionsList.get(size5); if (arrayList3.remove(viewHolder)) { view.setAlpha(1.0f); dispatchAddFinished(viewHolder); if (arrayList3.isEmpty()) { this.mAdditionsList.remove(size5); } } } this.mRemoveAnimations.remove(viewHolder); this.mAddAnimations.remove(viewHolder); this.mChangeAnimations.remove(viewHolder); this.mMoveAnimations.remove(viewHolder); dispatchFinishedWhenDone(); } private void resetAnimation(RecyclerView.ViewHolder viewHolder) { if (sDefaultInterpolator == null) { sDefaultInterpolator = new ValueAnimator().getInterpolator(); } viewHolder.itemView.animate().setInterpolator(sDefaultInterpolator); endAnimation(viewHolder); } @Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator public boolean isRunning() { return (this.mPendingAdditions.isEmpty() && this.mPendingChanges.isEmpty() && this.mPendingMoves.isEmpty() && this.mPendingRemovals.isEmpty() && this.mMoveAnimations.isEmpty() && this.mRemoveAnimations.isEmpty() && this.mAddAnimations.isEmpty() && this.mChangeAnimations.isEmpty() && this.mMovesList.isEmpty() && this.mAdditionsList.isEmpty() && this.mChangesList.isEmpty()) ? false : true; } void dispatchFinishedWhenDone() { if (isRunning()) { return; } dispatchAnimationsFinished(); } @Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator public void endAnimations() { int size = this.mPendingMoves.size(); while (true) { size--; if (size < 0) { break; } MoveInfo moveInfo = this.mPendingMoves.get(size); View view = moveInfo.holder.itemView; view.setTranslationY(0.0f); view.setTranslationX(0.0f); dispatchMoveFinished(moveInfo.holder); this.mPendingMoves.remove(size); } for (int size2 = this.mPendingRemovals.size() - 1; size2 >= 0; size2--) { dispatchRemoveFinished(this.mPendingRemovals.get(size2)); this.mPendingRemovals.remove(size2); } int size3 = this.mPendingAdditions.size(); while (true) { size3--; if (size3 < 0) { break; } RecyclerView.ViewHolder viewHolder = this.mPendingAdditions.get(size3); viewHolder.itemView.setAlpha(1.0f); dispatchAddFinished(viewHolder); this.mPendingAdditions.remove(size3); } for (int size4 = this.mPendingChanges.size() - 1; size4 >= 0; size4--) { endChangeAnimationIfNecessary(this.mPendingChanges.get(size4)); } this.mPendingChanges.clear(); if (isRunning()) { for (int size5 = this.mMovesList.size() - 1; size5 >= 0; size5--) { ArrayList arrayList = this.mMovesList.get(size5); for (int size6 = arrayList.size() - 1; size6 >= 0; size6--) { MoveInfo moveInfo2 = arrayList.get(size6); View view2 = moveInfo2.holder.itemView; view2.setTranslationY(0.0f); view2.setTranslationX(0.0f); dispatchMoveFinished(moveInfo2.holder); arrayList.remove(size6); if (arrayList.isEmpty()) { this.mMovesList.remove(arrayList); } } } for (int size7 = this.mAdditionsList.size() - 1; size7 >= 0; size7--) { ArrayList arrayList2 = this.mAdditionsList.get(size7); for (int size8 = arrayList2.size() - 1; size8 >= 0; size8--) { RecyclerView.ViewHolder viewHolder2 = arrayList2.get(size8); viewHolder2.itemView.setAlpha(1.0f); dispatchAddFinished(viewHolder2); arrayList2.remove(size8); if (arrayList2.isEmpty()) { this.mAdditionsList.remove(arrayList2); } } } for (int size9 = this.mChangesList.size() - 1; size9 >= 0; size9--) { ArrayList arrayList3 = this.mChangesList.get(size9); for (int size10 = arrayList3.size() - 1; size10 >= 0; size10--) { endChangeAnimationIfNecessary(arrayList3.get(size10)); if (arrayList3.isEmpty()) { this.mChangesList.remove(arrayList3); } } } cancelAll(this.mRemoveAnimations); cancelAll(this.mMoveAnimations); cancelAll(this.mAddAnimations); cancelAll(this.mChangeAnimations); dispatchAnimationsFinished(); } } void cancelAll(List list) { for (int size = list.size() - 1; size >= 0; size--) { list.get(size).itemView.animate().cancel(); } } @Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator public boolean canReuseUpdatedViewHolder(RecyclerView.ViewHolder viewHolder, List list) { return !list.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, list); } }