Correctly animate deletion when attaching multiple media.

This commit is contained in:
Nicholas
2022-12-14 13:18:11 -05:00
committed by Cody Henthorne
parent 9b85907918
commit 0e08b4ee26
2 changed files with 11 additions and 8 deletions

View File

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

View File

@@ -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());
}
}