diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/DivVisibilityActionTracker.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/DivVisibilityActionTracker.kt index ecd644fbf..83692ab35 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/DivVisibilityActionTracker.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/DivVisibilityActionTracker.kt @@ -256,6 +256,7 @@ internal class DivVisibilityActionTracker @Inject constructor( return@associateTo compositeLogId to action }.let { Collections.synchronizedMap(it) } trackedTokens.add(logIds) + val originalDivData = scope.divData /* We use map of CompositeLogId to DivSightAction as token here, so we can cancel * individual actions while still execute the rest of it as a bulk. */ handler.postDelayed(delayInMillis = delayMs, token = logIds) { @@ -267,7 +268,9 @@ internal class DivVisibilityActionTracker @Inject constructor( divWithWaitingDisappearActions.remove(view) } } - visibilityActionDispatcher.dispatchActions(scope, resolver, view, logIds.values.toTypedArray()) + if (scope.divData === originalDivData) { + visibilityActionDispatcher.dispatchActions(scope, resolver, view, logIds.values.toTypedArray()) + } } }