99 Commits

Author SHA1 Message Date
Huy Nguyen
56c6bd681b Revert "Revert commit 83aaa46, thus bring 2e4d716 back"
This reverts commit 209425c22ce84ecbb7ab631753ec8fc34dd9cbb0.
2016-01-26 12:05:02 -08:00
Huy Nguyen
209425c22c Revert commit 83aaa46, thus bring 2e4d716 back 2016-01-24 23:38:05 -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 2e4d716e0b65465d9c65b5821668c38e5fa956c9.

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
df10f8f19a Check array size before accessing section - rare crash for improper data source use, de-escalated to messaging nil. 2016-01-14 00:25:53 -08:00
Scott Goodson
7dff6ffa14 Re-enable program flow instrumentation for Coveralls. More null-specifiers.
This does cause tests to crash at the end, which unfortunately seems like a known Xcode 7 bug.
2015-12-25 22:13:35 -08:00
Garrett Moon
941a732fd6 Rename and move ASMainSerialQueue to its own class 2015-12-11 10:53:06 -08:00
Garrett Moon
066596314e Fix deadlock when an editing transaction needs to perform its work on the main thread, and then elsewhere, on the main thread, we block waiting for all editing transactions to finish 2015-12-11 10:45:23 -08:00
Garrett Moon
f94229796c Fixes out of order blocks running on main queue in ASDataController
ASDataController’s completedNodes is accessed by treating the main thread as a serial queue. The ​*problem*​ is, operations can cut in line by being added while on the main thread. I.e. it just calls the block instead of dispatch_async’ing to the main thread. This results in data inconsistency.

To address this, I've added a queue of operations which get run serially (not to be confused with a serial dispatch queue). Instead of running blocks directly on the main thread, if it’s called while not on the main thread, it dispatch_asyncs to the main thread and runs any blocks in the queue. If it ​*is*​ on the main thread, it runs any blocks already in the queue and then runs the block.
2015-12-11 10:45:22 -08:00
Scott Goodson
88b36f58e7 Ensure an empty array is returned if visibleNodes is called before any nodes are complete. 2015-12-06 21:45:46 -08:00
Huy Nguyen
cd31f884dd Move ASDisplayNodePerformBlockOnMainThread to ASInternalHelpers 2015-10-29 16:09:36 +02:00
appleguy
8dddcaa74b Merge pull request #766 from levi/levi/synchronous-reloaddata
Add synchronous reloadData methods to ASTableView and ASCollectionView
2015-10-25 21:05:52 -07:00
Levi McCallum
722b90f1cf Implement basic immediate reloadData method on table and collection view 2015-10-22 21:28:44 -07:00
Levi McCallum
c33d6efa8a WIP synchronous reload data on collection view 2015-10-22 21:28:30 -07:00
Levi McCallum
45ff74b604 Remove array fallback on editing node index paths 2015-10-21 23:17:38 -07:00
Levi McCallum
9697edac33 Fix conditional block style 2015-10-21 23:17:37 -07:00
Levi McCallum
11076b115e Used cached layout value in node remeasurement 2015-10-21 23:17:37 -07:00
Levi McCallum
55c1b8f6e7 Fix variable naming in debug log 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
1c717c74b8 Homogenize cell node measuring 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
4fb4119f9c Clarify data controller subclass hooks 2015-10-15 11:40:52 -07:00
Levi McCallum
eb5c79598c Clean up arrangement of data controller subclassing methods 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
f9bba315df Stub out subclass hooks for section insert/remove/update/moving 2015-10-15 11:40:51 -07:00
Levi McCallum
ed7a73361b Use simpler completed nodes loop 2015-10-15 11:40:51 -07:00
Levi McCallum
71966f3549 Relayout all nodes in backing store on relayoutAllNodes 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
769a67569c Batch layout as display nodes 2015-10-15 11:40:50 -07:00
Levi McCallum
34f3065825 Use local method for introspecting data controller constrained sizes 2015-10-15 11:40:50 -07:00
Levi McCallum
0086949a65 Fix typo 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
6e49e1f4d5 Initialize mutable editing nodes before section insertion 2015-10-15 11:40:50 -07:00
Levi McCallum
f041a273b5 Use rows mutable array for section deletion 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
a3dce24fdc Document data controller node population 2015-10-15 11:40:49 -07:00
Levi McCallum
bdd786f593 Document internal storage behaviors of ASDataController 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
ed1b737ead Define initial supplementary node creation behavior 2015-10-15 11:40:48 -07:00
Levi McCallum
e9eadac4ae Stub out ASCollectionDataController subclass 2015-10-15 11:40:48 -07:00
Adlai Holler
fbd3c77fec Finish that thought 2015-10-11 08:43:43 -07:00
Adlai Holler
d964364cd5 Add some documentation in DataController, plus use Fast Enumeration more 2015-10-11 08:39:29 -07:00
Adlai Holler
595891629c Remove pointless assertion 2015-10-10 10:33:56 -07:00
Adlai Holler
0c361894ac Remove comment 2015-10-09 21:17:11 -07:00