mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-18 23:08:21 +00:00
Summary: For diffing, `IGListAdapterUpdater` uses the full `fromObjects` instead of `validObjects`, which can be different if we're missing `IGListSectionController`. The diffing results won't match what the `IGListAdapter` tells the `UICollectionView`, so we can crash. To fix this, lets try to generate the `IGListSectionController` before performing the diffing, and keep them in a container object (`IGListTransitionData`) alonside the `fromObjects` and `toObjects`. This might also unblock other cool features in the future, like giving `IGListSectionControllers` time for background work, but that's for another day. Since this change is relatively large, lets create a temporary protocol `IGListUpdatingDelegateExperimental` which will have a slightly different API from `IGListUpdatingDelegate`. When/if the new implementation ships, we can merge both protocols. Why not edit `IGListAdapterUpdater` directly? * I don't want to mess up exiting updaters just yet. Reviewed By: patters Differential Revision: D23145776 fbshipit-source-id: 21642cafa64e2a26a173e2ba683ef5c6cede17d7 |
||
|---|---|---|
| .. | ||
| Internal | ||
| IGListAssert.h | ||
| IGListBatchUpdateData.h | ||
| IGListBatchUpdateData.mm | ||
| IGListCompatibility.h | ||
| IGListDiff.h | ||
| IGListDiff.mm | ||
| IGListDiffable.h | ||
| IGListDiffKit.h | ||
| IGListExperiments.h | ||
| IGListIndexPathResult.h | ||
| IGListIndexPathResult.m | ||
| IGListIndexSetResult.h | ||
| IGListIndexSetResult.m | ||
| IGListMacros.h | ||
| IGListMoveIndex.h | ||
| IGListMoveIndex.m | ||
| IGListMoveIndexPath.h | ||
| IGListMoveIndexPath.m | ||
| NSNumber+IGListDiffable.h | ||
| NSNumber+IGListDiffable.m | ||
| NSString+IGListDiffable.h | ||
| NSString+IGListDiffable.m | ||