IGListKit/Source/Common
Ryan Nystrom 4dec244416 Add item-level moves to IGListCollectionContext
Summary:
Adding an API to do item-level (cell) moves on the collection view. This complicates things a little bit because of all the issues that moving sections have while in batch updates (e.g. simultaneous animation UICV bugs). Thankfully we use pretty strict types so the compiler does most of the work for us.

Closes #145

- [x] Tests build and pass
- [x] Add `IGListBatchUpdateData` tests to check moves during
  - [x] ~~Moving within a reloaded section (no op)~~ can't reload sections
  - [x] Moving within a deleted section (no op)
  - [x] Moving within a moved section (convert section ops to delete+insert)
  - [x] Moving an index path that is also reloaded (convert to delete+insert path)
- [x] Add move unit tests to `IGListAdapterUpdater`
- [x] Add move unit tests to `IGListReloadDataUpdater` (mostly for code coverage...)
- [x] Add move unit tests to `IGListStackedSectionController`
- [x] Add `CHANGELOG.md` entry for 3.0.0
- [x] Test moving without batch
Closes https://github.com/Instagram/IGListKit/pull/418

Reviewed By: jessesquires

Differential Revision: D4521732

Pulled By: rnystrom

fbshipit-source-id: 99a46d1cbb0cc1f857a62ff6ca257aff6e8b7f25
2017-02-10 18:01:18 -08:00
..
Internal Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListAssert.h fixup common files and podspec, #270 2016-12-19 21:44:13 -08:00
IGListBatchUpdateData.h Add item-level moves to IGListCollectionContext 2017-02-10 18:01:18 -08:00
IGListBatchUpdateData.mm Add item-level moves to IGListCollectionContext 2017-02-10 18:01:18 -08:00
IGListCompatibility.h Added compatibility header 2016-12-24 10:44:25 -08:00
IGListDiff.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListDiff.mm Added compatibility header 2016-12-24 10:44:25 -08:00
IGListDiffable.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListDiffKit.h Added Subspec for Diffing 2016-12-27 12:44:27 -08:00
IGListExperiments.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListIndexPathResult.h - (BOOL) hasChanges should be a readonly property 2017-02-02 09:59:05 -08:00
IGListIndexPathResult.m Convert NSUInteger to NSInteger 2017-01-22 14:44:14 -08:00
IGListIndexSetResult.h - (BOOL) hasChanges should be a readonly property 2017-02-02 09:59:05 -08:00
IGListIndexSetResult.m Convert NSUInteger to NSInteger 2017-01-22 14:44:14 -08:00
IGListMacros.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListMoveIndex.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListMoveIndex.m Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListMoveIndexPath.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
IGListMoveIndexPath.m Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
NSNumber+IGListDiffable.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
NSNumber+IGListDiffable.m Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
NSString+IGListDiffable.h Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00
NSString+IGListDiffable.m Move macOS and diffing files to Common dir 2016-12-19 12:29:24 -08:00