From 0e08b4ee269ac84ba6e6e873ed747177dc91d2a4 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Wed, 14 Dec 2022 13:18:11 -0500 Subject: [PATCH] Correctly animate deletion when attaching multiple media. --- .../mediasend/v2/review/MediaReviewFragment.kt | 2 +- .../util/adapter/mapping/MappingAdapter.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt index f6ec87a4be..04ef205c7b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt @@ -238,7 +238,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) { } }) - val selectionAdapter = MappingAdapter() + val selectionAdapter = MappingAdapter(false) MediaReviewAddItem.register(selectionAdapter) { launchGallery() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java index 0dc444e459..d46ad3f5d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java @@ -44,16 +44,19 @@ import kotlin.jvm.functions.Function1; */ public class MappingAdapter extends ListAdapter, MappingViewHolder> { - final Map> factories; - final Map, Integer> itemTypes; - int typeCount; + final Map> factories = new HashMap<>(); + final Map, 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, 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()); } }