IGListKit/Source/IGListDiffKit
Jordan Smith 6414e778b4 Add an experiment for inline CATransaction commits
Summary:
**Context**

When performing non-animated updates, `IGListKit` does so by beginning a `CATransaction` before `performBatchUpdates:`, and ending it in the completion block. While this disables animations for the collection view updates, it is feasible that some other changes might be bundled into the same transaction, given that we have no guarantee of the completion block being called inline.

It seems that this is happening in practice and occasionally disrupting `UIViewPropertyAnimator` animations, forcing the completion immediately.

**This Change**

To fix this issue, we can commit the transaction inline. Here we use `performWithoutAnimation:`, although it's possible that this is just a wrapper around `CATransaction` calls anyway.

Because the change may have unknown side effects, this change is gated by an experiment.

Reviewed By: maxolls

Differential Revision: D19150307

fbshipit-source-id: f7cff46ac7141609f42caafaf69bad71a980ad29
2019-12-17 16:57:39 -08:00
..
Internal Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListAssert.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListBatchUpdateData.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListBatchUpdateData.mm Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListCompatibility.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListDiff.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListDiff.mm Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListDiffable.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListDiffKit.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListExperiments.h Add an experiment for inline CATransaction commits 2019-12-17 16:57:39 -08:00
IGListIndexPathResult.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListIndexPathResult.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListIndexSetResult.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListIndexSetResult.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListMacros.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListMoveIndex.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListMoveIndex.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListMoveIndexPath.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
IGListMoveIndexPath.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
NSNumber+IGListDiffable.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
NSNumber+IGListDiffable.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
NSString+IGListDiffable.h Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00
NSString+IGListDiffable.m Split IGListKit and IGListDiffKit (#1377) 2019-10-31 08:26:12 -07:00