From 98198eb1e284645dfea21a4a8e22dcb084ab8538 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Sat, 16 Jul 2016 15:16:33 +0300 Subject: [PATCH] observable collection animations optimized a bit --- .../adapters/ObservableCollectionAdapter.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java b/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java index a39e370..5446d5c 100644 --- a/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java +++ b/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java @@ -28,6 +28,7 @@ import android.view.ViewGroup; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import ru.touchin.roboswag.components.R; @@ -68,6 +69,8 @@ public abstract class ObservableCollectionAdapter innerCollection = new ObservableList<>(); private boolean anyChangeApplied; + @NonNull + private final List attachedRecyclerViews = new LinkedList<>(); public ObservableCollectionAdapter(@NonNull final UiBindable uiBindable) { super(); @@ -105,6 +108,18 @@ public abstract class ObservableCollectionAdapter collectionChange) { if (Looper.myLooper() != Looper.getMainLooper()) { Lc.assertion("Items changes called on not main thread"); return; } - if (!anyChangeApplied) { + if (!anyChangeApplied || !anyRecyclerViewShown()) { anyChangeApplied = true; refreshUpdate(); return;