Correctly animate deletion when attaching multiple media.

main
Nicholas 2022-12-14 13:18:11 -05:00 zatwierdzone przez Cody Henthorne
rodzic 9b85907918
commit 0e08b4ee26
2 zmienionych plików z 11 dodań i 8 usunięć

Wyświetl plik

@ -238,7 +238,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
}
})
val selectionAdapter = MappingAdapter()
val selectionAdapter = MappingAdapter(false)
MediaReviewAddItem.register(selectionAdapter) {
launchGallery()
}

Wyświetl plik

@ -44,16 +44,19 @@ import kotlin.jvm.functions.Function1;
*/
public class MappingAdapter extends ListAdapter<MappingModel<?>, MappingViewHolder<?>> {
final Map<Integer, Factory<?>> factories;
final Map<Class<?>, Integer> itemTypes;
int typeCount;
final Map<Integer, Factory<?>> factories = new HashMap<>();
final Map<Class<?>, Integer> itemTypes = new HashMap<>();
int typeCount = 0;
final boolean useNoCrossfadeAnimator;
public MappingAdapter() {
this(true);
}
public MappingAdapter(boolean useNoCrossfadeAnimator) {
super(new MappingDiffCallback());
factories = new HashMap<>();
itemTypes = new HashMap<>();
typeCount = 0;
this.useNoCrossfadeAnimator = useNoCrossfadeAnimator;
}
@Override
@ -71,7 +74,7 @@ public class MappingAdapter extends ListAdapter<MappingModel<?>, MappingViewHold
@Override
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
if (recyclerView.getItemAnimator() != null && recyclerView.getItemAnimator().getClass() == DefaultItemAnimator.class) {
if (useNoCrossfadeAnimator && recyclerView.getItemAnimator() != null && recyclerView.getItemAnimator().getClass() == DefaultItemAnimator.class) {
recyclerView.setItemAnimator(new NoCrossfadeChangeDefaultAnimator());
}
}