567 lines
22 KiB
Java
567 lines
22 KiB
Java
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: classes.dex */
|
|
public class DefaultItemAnimator extends SimpleItemAnimator {
|
|
private static TimeInterpolator s;
|
|
private ArrayList<RecyclerView.ViewHolder> h = new ArrayList<>();
|
|
private ArrayList<RecyclerView.ViewHolder> i = new ArrayList<>();
|
|
private ArrayList<MoveInfo> j = new ArrayList<>();
|
|
private ArrayList<ChangeInfo> k = new ArrayList<>();
|
|
ArrayList<ArrayList<RecyclerView.ViewHolder>> l = new ArrayList<>();
|
|
ArrayList<ArrayList<MoveInfo>> m = new ArrayList<>();
|
|
ArrayList<ArrayList<ChangeInfo>> n = new ArrayList<>();
|
|
ArrayList<RecyclerView.ViewHolder> o = new ArrayList<>();
|
|
ArrayList<RecyclerView.ViewHolder> p = new ArrayList<>();
|
|
ArrayList<RecyclerView.ViewHolder> q = new ArrayList<>();
|
|
ArrayList<RecyclerView.ViewHolder> r = new ArrayList<>();
|
|
|
|
private static class MoveInfo {
|
|
public RecyclerView.ViewHolder a;
|
|
public int b;
|
|
public int c;
|
|
public int d;
|
|
public int e;
|
|
|
|
MoveInfo(RecyclerView.ViewHolder viewHolder, int i, int i2, int i3, int i4) {
|
|
this.a = viewHolder;
|
|
this.b = i;
|
|
this.c = i2;
|
|
this.d = i3;
|
|
this.e = i4;
|
|
}
|
|
}
|
|
|
|
private void u(final RecyclerView.ViewHolder viewHolder) {
|
|
final View view = viewHolder.itemView;
|
|
final ViewPropertyAnimator animate = view.animate();
|
|
this.q.add(viewHolder);
|
|
animate.setDuration(f()).alpha(0.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.4
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationEnd(Animator animator) {
|
|
animate.setListener(null);
|
|
view.setAlpha(1.0f);
|
|
DefaultItemAnimator.this.l(viewHolder);
|
|
DefaultItemAnimator.this.q.remove(viewHolder);
|
|
DefaultItemAnimator.this.j();
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
DefaultItemAnimator.this.m(viewHolder);
|
|
}
|
|
}).start();
|
|
}
|
|
|
|
private void v(RecyclerView.ViewHolder viewHolder) {
|
|
if (s == null) {
|
|
s = new ValueAnimator().getInterpolator();
|
|
}
|
|
viewHolder.itemView.animate().setInterpolator(s);
|
|
c(viewHolder);
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.SimpleItemAnimator
|
|
public boolean a(RecyclerView.ViewHolder viewHolder, int i, int i2, int i3, int i4) {
|
|
View view = viewHolder.itemView;
|
|
int translationX = i + ((int) view.getTranslationX());
|
|
int translationY = i2 + ((int) viewHolder.itemView.getTranslationY());
|
|
v(viewHolder);
|
|
int i5 = i3 - translationX;
|
|
int i6 = i4 - translationY;
|
|
if (i5 == 0 && i6 == 0) {
|
|
j(viewHolder);
|
|
return false;
|
|
}
|
|
if (i5 != 0) {
|
|
view.setTranslationX(-i5);
|
|
}
|
|
if (i6 != 0) {
|
|
view.setTranslationY(-i6);
|
|
}
|
|
this.j.add(new MoveInfo(viewHolder, translationX, translationY, i3, i4));
|
|
return true;
|
|
}
|
|
|
|
void b(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.p.add(viewHolder);
|
|
animate.setDuration(e()).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.6
|
|
@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.j(viewHolder);
|
|
DefaultItemAnimator.this.p.remove(viewHolder);
|
|
DefaultItemAnimator.this.j();
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
DefaultItemAnimator.this.k(viewHolder);
|
|
}
|
|
}).start();
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator
|
|
public void c(RecyclerView.ViewHolder viewHolder) {
|
|
View view = viewHolder.itemView;
|
|
view.animate().cancel();
|
|
int size = this.j.size();
|
|
while (true) {
|
|
size--;
|
|
if (size < 0) {
|
|
break;
|
|
}
|
|
if (this.j.get(size).a == viewHolder) {
|
|
view.setTranslationY(0.0f);
|
|
view.setTranslationX(0.0f);
|
|
j(viewHolder);
|
|
this.j.remove(size);
|
|
}
|
|
}
|
|
a(this.k, viewHolder);
|
|
if (this.h.remove(viewHolder)) {
|
|
view.setAlpha(1.0f);
|
|
l(viewHolder);
|
|
}
|
|
if (this.i.remove(viewHolder)) {
|
|
view.setAlpha(1.0f);
|
|
h(viewHolder);
|
|
}
|
|
for (int size2 = this.n.size() - 1; size2 >= 0; size2--) {
|
|
ArrayList<ChangeInfo> arrayList = this.n.get(size2);
|
|
a(arrayList, viewHolder);
|
|
if (arrayList.isEmpty()) {
|
|
this.n.remove(size2);
|
|
}
|
|
}
|
|
for (int size3 = this.m.size() - 1; size3 >= 0; size3--) {
|
|
ArrayList<MoveInfo> arrayList2 = this.m.get(size3);
|
|
int size4 = arrayList2.size() - 1;
|
|
while (true) {
|
|
if (size4 < 0) {
|
|
break;
|
|
}
|
|
if (arrayList2.get(size4).a == viewHolder) {
|
|
view.setTranslationY(0.0f);
|
|
view.setTranslationX(0.0f);
|
|
j(viewHolder);
|
|
arrayList2.remove(size4);
|
|
if (arrayList2.isEmpty()) {
|
|
this.m.remove(size3);
|
|
}
|
|
} else {
|
|
size4--;
|
|
}
|
|
}
|
|
}
|
|
for (int size5 = this.l.size() - 1; size5 >= 0; size5--) {
|
|
ArrayList<RecyclerView.ViewHolder> arrayList3 = this.l.get(size5);
|
|
if (arrayList3.remove(viewHolder)) {
|
|
view.setAlpha(1.0f);
|
|
h(viewHolder);
|
|
if (arrayList3.isEmpty()) {
|
|
this.l.remove(size5);
|
|
}
|
|
}
|
|
}
|
|
this.q.remove(viewHolder);
|
|
this.o.remove(viewHolder);
|
|
this.r.remove(viewHolder);
|
|
this.p.remove(viewHolder);
|
|
j();
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.SimpleItemAnimator
|
|
public boolean f(RecyclerView.ViewHolder viewHolder) {
|
|
v(viewHolder);
|
|
viewHolder.itemView.setAlpha(0.0f);
|
|
this.i.add(viewHolder);
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.SimpleItemAnimator
|
|
public boolean g(RecyclerView.ViewHolder viewHolder) {
|
|
v(viewHolder);
|
|
this.h.add(viewHolder);
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator
|
|
public void i() {
|
|
boolean z = !this.h.isEmpty();
|
|
boolean z2 = !this.j.isEmpty();
|
|
boolean z3 = !this.k.isEmpty();
|
|
boolean z4 = !this.i.isEmpty();
|
|
if (z || z2 || z4 || z3) {
|
|
Iterator<RecyclerView.ViewHolder> it = this.h.iterator();
|
|
while (it.hasNext()) {
|
|
u(it.next());
|
|
}
|
|
this.h.clear();
|
|
if (z2) {
|
|
final ArrayList<MoveInfo> arrayList = new ArrayList<>();
|
|
arrayList.addAll(this.j);
|
|
this.m.add(arrayList);
|
|
this.j.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.b(moveInfo.a, moveInfo.b, moveInfo.c, moveInfo.d, moveInfo.e);
|
|
}
|
|
arrayList.clear();
|
|
DefaultItemAnimator.this.m.remove(arrayList);
|
|
}
|
|
};
|
|
if (z) {
|
|
ViewCompat.a(arrayList.get(0).a.itemView, runnable, f());
|
|
} else {
|
|
runnable.run();
|
|
}
|
|
}
|
|
if (z3) {
|
|
final ArrayList<ChangeInfo> arrayList2 = new ArrayList<>();
|
|
arrayList2.addAll(this.k);
|
|
this.n.add(arrayList2);
|
|
this.k.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.a((ChangeInfo) it2.next());
|
|
}
|
|
arrayList2.clear();
|
|
DefaultItemAnimator.this.n.remove(arrayList2);
|
|
}
|
|
};
|
|
if (z) {
|
|
ViewCompat.a(arrayList2.get(0).a.itemView, runnable2, f());
|
|
} else {
|
|
runnable2.run();
|
|
}
|
|
}
|
|
if (z4) {
|
|
final ArrayList<RecyclerView.ViewHolder> arrayList3 = new ArrayList<>();
|
|
arrayList3.addAll(this.i);
|
|
this.l.add(arrayList3);
|
|
this.i.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.t((RecyclerView.ViewHolder) it2.next());
|
|
}
|
|
arrayList3.clear();
|
|
DefaultItemAnimator.this.l.remove(arrayList3);
|
|
}
|
|
};
|
|
if (z || z2 || z3) {
|
|
ViewCompat.a(arrayList3.get(0).itemView, runnable3, (z ? f() : 0L) + Math.max(z2 ? e() : 0L, z3 ? d() : 0L));
|
|
} else {
|
|
runnable3.run();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void j() {
|
|
if (g()) {
|
|
return;
|
|
}
|
|
a();
|
|
}
|
|
|
|
void t(final RecyclerView.ViewHolder viewHolder) {
|
|
final View view = viewHolder.itemView;
|
|
final ViewPropertyAnimator animate = view.animate();
|
|
this.o.add(viewHolder);
|
|
animate.alpha(1.0f).setDuration(c()).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.5
|
|
@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.h(viewHolder);
|
|
DefaultItemAnimator.this.o.remove(viewHolder);
|
|
DefaultItemAnimator.this.j();
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
DefaultItemAnimator.this.i(viewHolder);
|
|
}
|
|
}).start();
|
|
}
|
|
|
|
private static class ChangeInfo {
|
|
public RecyclerView.ViewHolder a;
|
|
public RecyclerView.ViewHolder b;
|
|
public int c;
|
|
public int d;
|
|
public int e;
|
|
public int f;
|
|
|
|
private ChangeInfo(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2) {
|
|
this.a = viewHolder;
|
|
this.b = viewHolder2;
|
|
}
|
|
|
|
public String toString() {
|
|
return "ChangeInfo{oldHolder=" + this.a + ", newHolder=" + this.b + ", fromX=" + this.c + ", fromY=" + this.d + ", toX=" + this.e + ", toY=" + this.f + '}';
|
|
}
|
|
|
|
ChangeInfo(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2, int i, int i2, int i3, int i4) {
|
|
this(viewHolder, viewHolder2);
|
|
this.c = i;
|
|
this.d = i2;
|
|
this.e = i3;
|
|
this.f = i4;
|
|
}
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator
|
|
public boolean g() {
|
|
return (this.i.isEmpty() && this.k.isEmpty() && this.j.isEmpty() && this.h.isEmpty() && this.p.isEmpty() && this.q.isEmpty() && this.o.isEmpty() && this.r.isEmpty() && this.m.isEmpty() && this.l.isEmpty() && this.n.isEmpty()) ? false : true;
|
|
}
|
|
|
|
private void b(ChangeInfo changeInfo) {
|
|
RecyclerView.ViewHolder viewHolder = changeInfo.a;
|
|
if (viewHolder != null) {
|
|
a(changeInfo, viewHolder);
|
|
}
|
|
RecyclerView.ViewHolder viewHolder2 = changeInfo.b;
|
|
if (viewHolder2 != null) {
|
|
a(changeInfo, viewHolder2);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.SimpleItemAnimator
|
|
public boolean a(RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder2, int i, int i2, int i3, int i4) {
|
|
if (viewHolder == viewHolder2) {
|
|
return a(viewHolder, i, i2, i3, i4);
|
|
}
|
|
float translationX = viewHolder.itemView.getTranslationX();
|
|
float translationY = viewHolder.itemView.getTranslationY();
|
|
float alpha = viewHolder.itemView.getAlpha();
|
|
v(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) {
|
|
v(viewHolder2);
|
|
viewHolder2.itemView.setTranslationX(-i5);
|
|
viewHolder2.itemView.setTranslationY(-i6);
|
|
viewHolder2.itemView.setAlpha(0.0f);
|
|
}
|
|
this.k.add(new ChangeInfo(viewHolder, viewHolder2, i, i2, i3, i4));
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator
|
|
public void b() {
|
|
int size = this.j.size();
|
|
while (true) {
|
|
size--;
|
|
if (size < 0) {
|
|
break;
|
|
}
|
|
MoveInfo moveInfo = this.j.get(size);
|
|
View view = moveInfo.a.itemView;
|
|
view.setTranslationY(0.0f);
|
|
view.setTranslationX(0.0f);
|
|
j(moveInfo.a);
|
|
this.j.remove(size);
|
|
}
|
|
for (int size2 = this.h.size() - 1; size2 >= 0; size2--) {
|
|
l(this.h.get(size2));
|
|
this.h.remove(size2);
|
|
}
|
|
int size3 = this.i.size();
|
|
while (true) {
|
|
size3--;
|
|
if (size3 < 0) {
|
|
break;
|
|
}
|
|
RecyclerView.ViewHolder viewHolder = this.i.get(size3);
|
|
viewHolder.itemView.setAlpha(1.0f);
|
|
h(viewHolder);
|
|
this.i.remove(size3);
|
|
}
|
|
for (int size4 = this.k.size() - 1; size4 >= 0; size4--) {
|
|
b(this.k.get(size4));
|
|
}
|
|
this.k.clear();
|
|
if (g()) {
|
|
for (int size5 = this.m.size() - 1; size5 >= 0; size5--) {
|
|
ArrayList<MoveInfo> arrayList = this.m.get(size5);
|
|
for (int size6 = arrayList.size() - 1; size6 >= 0; size6--) {
|
|
MoveInfo moveInfo2 = arrayList.get(size6);
|
|
View view2 = moveInfo2.a.itemView;
|
|
view2.setTranslationY(0.0f);
|
|
view2.setTranslationX(0.0f);
|
|
j(moveInfo2.a);
|
|
arrayList.remove(size6);
|
|
if (arrayList.isEmpty()) {
|
|
this.m.remove(arrayList);
|
|
}
|
|
}
|
|
}
|
|
for (int size7 = this.l.size() - 1; size7 >= 0; size7--) {
|
|
ArrayList<RecyclerView.ViewHolder> arrayList2 = this.l.get(size7);
|
|
for (int size8 = arrayList2.size() - 1; size8 >= 0; size8--) {
|
|
RecyclerView.ViewHolder viewHolder2 = arrayList2.get(size8);
|
|
viewHolder2.itemView.setAlpha(1.0f);
|
|
h(viewHolder2);
|
|
arrayList2.remove(size8);
|
|
if (arrayList2.isEmpty()) {
|
|
this.l.remove(arrayList2);
|
|
}
|
|
}
|
|
}
|
|
for (int size9 = this.n.size() - 1; size9 >= 0; size9--) {
|
|
ArrayList<ChangeInfo> arrayList3 = this.n.get(size9);
|
|
for (int size10 = arrayList3.size() - 1; size10 >= 0; size10--) {
|
|
b(arrayList3.get(size10));
|
|
if (arrayList3.isEmpty()) {
|
|
this.n.remove(arrayList3);
|
|
}
|
|
}
|
|
}
|
|
a(this.q);
|
|
a(this.p);
|
|
a(this.o);
|
|
a(this.r);
|
|
a();
|
|
}
|
|
}
|
|
|
|
void a(final ChangeInfo changeInfo) {
|
|
RecyclerView.ViewHolder viewHolder = changeInfo.a;
|
|
final View view = viewHolder == null ? null : viewHolder.itemView;
|
|
RecyclerView.ViewHolder viewHolder2 = changeInfo.b;
|
|
final View view2 = viewHolder2 != null ? viewHolder2.itemView : null;
|
|
if (view != null) {
|
|
final ViewPropertyAnimator duration = view.animate().setDuration(d());
|
|
this.r.add(changeInfo.a);
|
|
duration.translationX(changeInfo.e - changeInfo.c);
|
|
duration.translationY(changeInfo.f - changeInfo.d);
|
|
duration.alpha(0.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.7
|
|
@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.a(changeInfo.a, true);
|
|
DefaultItemAnimator.this.r.remove(changeInfo.a);
|
|
DefaultItemAnimator.this.j();
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
DefaultItemAnimator.this.b(changeInfo.a, true);
|
|
}
|
|
}).start();
|
|
}
|
|
if (view2 != null) {
|
|
final ViewPropertyAnimator animate = view2.animate();
|
|
this.r.add(changeInfo.b);
|
|
animate.translationX(0.0f).translationY(0.0f).setDuration(d()).alpha(1.0f).setListener(new AnimatorListenerAdapter() { // from class: androidx.recyclerview.widget.DefaultItemAnimator.8
|
|
@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.a(changeInfo.b, false);
|
|
DefaultItemAnimator.this.r.remove(changeInfo.b);
|
|
DefaultItemAnimator.this.j();
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
DefaultItemAnimator.this.b(changeInfo.b, false);
|
|
}
|
|
}).start();
|
|
}
|
|
}
|
|
|
|
private void a(List<ChangeInfo> list, RecyclerView.ViewHolder viewHolder) {
|
|
for (int size = list.size() - 1; size >= 0; size--) {
|
|
ChangeInfo changeInfo = list.get(size);
|
|
if (a(changeInfo, viewHolder) && changeInfo.a == null && changeInfo.b == null) {
|
|
list.remove(changeInfo);
|
|
}
|
|
}
|
|
}
|
|
|
|
private boolean a(ChangeInfo changeInfo, RecyclerView.ViewHolder viewHolder) {
|
|
boolean z = false;
|
|
if (changeInfo.b == viewHolder) {
|
|
changeInfo.b = null;
|
|
} else {
|
|
if (changeInfo.a != viewHolder) {
|
|
return false;
|
|
}
|
|
changeInfo.a = null;
|
|
z = true;
|
|
}
|
|
viewHolder.itemView.setAlpha(1.0f);
|
|
viewHolder.itemView.setTranslationX(0.0f);
|
|
viewHolder.itemView.setTranslationY(0.0f);
|
|
a(viewHolder, z);
|
|
return true;
|
|
}
|
|
|
|
void a(List<RecyclerView.ViewHolder> list) {
|
|
for (int size = list.size() - 1; size >= 0; size--) {
|
|
list.get(size).itemView.animate().cancel();
|
|
}
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemAnimator
|
|
public boolean a(RecyclerView.ViewHolder viewHolder, List<Object> list) {
|
|
return !list.isEmpty() || super.a(viewHolder, list);
|
|
}
|
|
}
|