38 Commits
Author SHA1 Message Date
Huy Nguyen 5ecc9b16a9 Remove unncessary batch layout calls in ASCollectionDataController
- These calls cause supplementary nodes to be allocated and laid out, but not inserted afterward. So the nodes are thrown away.
- Next time when it is the right time to allocate these nodes, it is the second allocation request and triggers assertion in ASIndexedNodeContext #1296.
2016-03-01 15:42:53 -08:00
Huy Nguyen 54cde1a3db Introduce ASIndexedNodeContext
- It is a container object that holds enough information to construct and measure a cell node
- All information is gathered on main thread. This allows ASDataController to capture the correct state of its data source before going to background.
2016-02-29 01:00:16 -08:00
appleguy b75d6627bb Revert "Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.""" 2016-02-19 23:26:29 -08:00
Scott Goodson a1061301e0 [ASDataController] Revert the reloadData optimizations again - need to fix apps relying on prior behavior.
The optimization seems correct now, but apps like Pinterest have some core code relying on edit operation
order that is actually not permitted by UIKit (and this diff) but were tolerated previously.  We will
re-land this once we have time to adapt the code.
2016-02-19 21:31:39 -08:00
appleguy 32aa333c21 Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods." 2016-02-18 19:50:06 -08:00
Luke Zhao 40791dd859 optimize reload data, reload sections, & move nodes performance & logic 2016-02-18 14:44:16 -08:00
Rahul Malik 3e5daf4ccd Update data source protocols to make synchronous node creation api methods optional. 2016-02-09 22:47:43 -08:00
Rahul Malik c4f489b074 Address comments. 2016-02-04 16:56:29 -08:00
Rahul Malik 521c3fa1c1 Move ASCellNode allocation off the main thread by the addition of a node block
API in ASDataController. Move allocations and loaded node layouts to occur
during batch layout phase.
2016-02-04 10:38:59 -08:00
Scott Goodson 83aaa4637e Revert "ASDataController now handles reloadData more efficiently and notify its delegate once instead of a series of deletes and inserts"
This reverts commit 2e4d716e0b.

Possible issue with this commit.
2016-01-22 20:33:33 -08:00
Huy Nguyen 2e4d716e0b ASDataController now handles reloadData more efficiently and notify its delegate once instead of a series of deletes and inserts 2016-01-21 11:21:21 -08:00
Scott Goodson 690f90a899 Supplementary nodes must be added to the completed nodes after their measurement completes following individual section reloads. 2015-12-27 15:34:26 -08:00
Levi McCallum 223cac1784 Inline supplementary kind iteration in data controller 2015-12-06 21:31:40 -08:00
Levi McCallum 64da9e7ece Ensure that new section supplementary nodes are inserted into backing store 2015-12-06 20:07:29 -08:00
Levi McCallum 5ca14486b6 Make array instantiation consistent 2015-10-21 23:17:37 -07:00
Levi McCallum 9a37538582 Clean up and test registration of internal supplementary node kinds 2015-10-15 11:40:53 -07:00
Levi McCallum 12194199cd Clean up layout delegate protocol API 2015-10-15 11:40:53 -07:00
Levi McCallum ee0cc2001a Add support for loaded node layout for supplementary views 2015-10-15 11:40:52 -07:00
Levi McCallum 952a66a924 Remove initial data loading subclass hook 2015-10-15 11:40:52 -07:00
Levi McCallum fddb0061b0 Use ASCellNodes for supplementary nodes 2015-10-15 11:40:52 -07:00
Levi McCallum 848dc26a0d Fix hook method naming 2015-10-15 11:40:52 -07:00
Levi McCallum 3f0092435a Add support to move supplementary nodes with section position changes 2015-10-15 11:40:51 -07:00
Levi McCallum 9235ce5ac2 Support reloading supplementary nodes when sections reload 2015-10-15 11:40:51 -07:00
Levi McCallum d77df45bfd Delete supplementary nodes when section is deleted 2015-10-15 11:40:51 -07:00
Levi McCallum e1ea2d2151 Handle supplementary node generation during insertion of new section 2015-10-15 11:40:51 -07:00
Levi McCallum 2cc55513a4 Nil out pending store kinds after processing 2015-10-15 11:40:51 -07:00
Levi McCallum d36c8a36c6 Introduce ability to populate internal supplementary nodes at specific sections 2015-10-15 11:40:51 -07:00
Levi McCallum f9bba315df Stub out subclass hooks for section insert/remove/update/moving 2015-10-15 11:40:51 -07:00
Levi McCallum b58649fdcb Clean up supplementary nodes in data controller store on each reload 2015-10-15 11:40:51 -07:00
Levi McCallum 34f3065825 Use local method for introspecting data controller constrained sizes 2015-10-15 11:40:50 -07:00
Levi McCallum 1c2046cdf4 Localize debugging LOG definition 2015-10-15 11:40:50 -07:00
Levi McCallum e4f274aebb Expose completed nodes array by kind 2015-10-15 11:40:50 -07:00
Levi McCallum aa1842e484 Remove non-null definitions 2015-10-15 11:40:50 -07:00
Levi McCallum afda471bd0 Clean up interfacing with internal editing/completed stores 2015-10-15 11:40:50 -07:00
Levi McCallum 835f9e99ca Batch render supplementary views on reload data 2015-10-15 11:40:49 -07:00
Levi McCallum 5dee3f62cc Extract number of supplementary sections into the inspector 2015-10-15 11:40:49 -07:00
Levi McCallum da7a2a5d48 Further implement data controller support and layout introspection 2015-10-15 11:40:49 -07:00
Levi McCallum 658b78d552 Use objective-c++ for subclass 2015-10-15 11:40:49 -07:00