Eric Jensen
c2f85397ce
Mark depreciated protocols with deprivation attribute
2016-03-08 11:56:58 -08:00
Eric Jensen
3d34c177ed
Flatten indentation of parameter hierarchy
2016-03-08 11:56:58 -08:00
Eric Jensen
86ccd33a84
Correct a few documentation comments for method parameters
2016-03-08 11:56:58 -08:00
Scott Goodson
5c28bb8e21
[ASScrollDirection] Ensure definitions of "positive" scroll direction in batch context match the layout controller.
2016-03-08 00:53:06 -08:00
Scott Goodson
39f5686982
Revert "[_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects."
...
Locking was not quite right here in a certain case where the transaction leaves after other references
were removed. Will restore this optimization in the future with more time to analyze.
This reverts commit ee524f497d0692a2c0c6ea39bd3840183a00f3ed.
2016-03-07 14:46:06 -08:00
Scott Goodson
c4f6c9035b
[ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData.
2016-03-05 20:52:00 -08:00
Scott Goodson
6a32e5ccc0
[ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData.
2016-03-05 20:27:36 -08:00
Scott Goodson
cc7ca4a08f
[ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData.
2016-03-05 20:22:18 -08:00
Huy Nguyen
caddd1d287
Fix threadSafeBounds
...
- Bounds change set directly to _ASDisplayLayer should also be saved to threadSafeBounds
- Remove overkill _usesDisplayView flag
2016-03-03 16:18:07 -08:00
Huy Nguyen
9162d7b2df
Implement thread-safe bounds and use it in ASTextNode
2016-03-02 22:42:53 -08:00
Michael Schneider
f2f1b25ae4
Rename _batchUpdateCounter to _changeSetBatchUpdateCounter in ASChangeSetDataController
...
Rename variable to prevent confusion between the _batchUpdateCounter variable of ASChangeSetDataController and it's superclass
2016-03-02 19:38:14 -08:00
Michael Schneider
aa2ae87c81
Add -waitUntilAllUpdatesAreCommitted to ASTableView and ASCollectionView
...
The API allows consumer of ASTableView or ASCollectionCiew to block execution of the main thread until all section and row updates are committed.
2016-03-02 19:38:14 -08:00
Scott Goodson
ee524f497d
[_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects.
...
Support assertion to log specific return value for pthread_mutex_destroy failures.
2016-03-02 14:49:02 -08:00
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
appleguy
07ad27c7f6
Merge pull request #1291 from nguyenhuy/container_object
...
[ASDataController] Performance tuning for array enumeration, etc.
2016-02-29 14:24:17 -08:00
Huy Nguyen
6d463daac7
ASDataController improvements
...
- _populateFromDataSourceWithSectionIndexSet doesn't accept a mutanle array but allocate one itself.
- Remove _populateFromEntireDataSourceWithMutableContexts.
- ASIndexedNodeContext executes its block, nil out the block and return the result.
2016-02-29 14:03:40 -08:00
Michael Schneider
568aa6c2fb
Update automatic range mode at the beginning of the update pass to consider new information in a possible next pass
2016-02-29 11:39:50 -08:00
Michael Schneider
aca5b14c2b
Move automatic range update to a private API
2016-02-29 11:39:50 -08:00
Michael Schneider
60889f555e
Add API to update the current range mode of a table or collection view range controller
2016-02-29 11:39:49 -08:00
Huy Nguyen
b098d80796
Performance improvements in ASDataController based on @Adlai-Holler comments in #1288
2016-02-29 11:36:48 -08:00
appleguy
ab920aa360
Merge pull request #1290 from nguyenhuy/container_object
...
Follow-up on #1288
2016-02-29 11:05:59 -08:00
Huy Nguyen
eadb6cbb0a
Fix wrong memory attribute for indexPath attribute in ASIndexedNodeContext
2016-02-29 09:33:53 -08:00
appleguy
2a89c1d3d6
Merge pull request #1288 from nguyenhuy/container_object
...
[ASDataController] Introduce ASIndexedNodeContext for efficiency and simplicity in managing nodes, indexPaths, and their constraints.
2016-02-29 01:10:38 -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
Scott Goodson
eac85b6c9a
[ASDisplayNode] Optimize -setNeedsDisplay, deep mutable array copies.
...
These optimizations are surprisingly impactful. -setNeedsDisplay being called
for every node triggered cancelAsyncDisplay, locking, and memory management overhead
that is completely avoidable because Core Animation triggers first display automatically.
The mutable array copy optimizations reduced this key cost by over 10x, from 52ms to 5ms
on an iPad Air 2 / A8X with a real-world test case.
2016-02-28 20:54:56 -08:00
appleguy
b75d6627bb
Revert "Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods."""
2016-02-19 23:26:29 -08:00
appleguy
2b10d84a2b
Revert "fix scheduling issue that causes collectionView to not animate"
2016-02-19 23:26:12 -08:00
appleguy
f3300ded68
Merge pull request #1246 from Xinchi/master
...
[ASCellNode] Support monitoring scrollViewDidScroll events / visible amount of self
2016-02-19 22:25:10 -08:00
Max Gu
115fc2b3da
Adding visibility monitoring for ASTableVieww
2016-02-19 22:15:44 -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
Max Gu
fa4fc2b6ae
Merge remote-tracking branch 'upstream/master'
2016-02-19 12:59:00 -08:00
Max Gu
03446d97e1
Adding scroll visibility
2016-02-19 12:46:12 -08:00
appleguy
58a3ba5e8f
Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.""
2016-02-18 23:06:14 -08:00
appleguy
32aa333c21
Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods."
2016-02-18 19:50:06 -08:00
appleguy
33d4c8693d
Merge pull request #1171 from lkzhao/ASDataController-reload
...
[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.
2016-02-18 17:36:14 -08:00
Luke Zhao
40791dd859
optimize reload data, reload sections, & move nodes performance & logic
2016-02-18 14:44:16 -08:00
Rahul Malik
19cc368d15
In addition to allocating nodes in the background, perform that operation concurrently in ASDataController
2016-02-17 22:30:58 -08:00
Adlai Holler
da3af0cade
Remove null handling docs for nonnull argument
2016-02-16 19:47:08 -08:00
Adlai Holler
da953ac421
Provide a Synchronous Path for Loading Memory-Cached Images
2016-02-16 19:43:47 -08:00
Bin Liu
db1a91234d
Improve reload handling in BatchUpdates
2016-02-16 11:04:21 -08:00
Scott Goodson
fce722b0c8
[ASDisplayNode] Allow display-scheduling method to be called concurrently.
2016-02-13 00:58:56 -08:00
Bin Liu
88ff693327
Fixes in ChangeSet and DataController
2016-02-11 23:51:32 -08:00
Garrett Moon
063cf86579
PINRemoteImage 2.0 moved its tag, who the hell are these idiots. -signed, author of PINRemoteImage
2016-02-10 18:35:29 -08:00
appleguy
07adec12a0
Merge pull request #1183 from levi/layoutTransition
...
[ASLayoutSpec] Add API to animate layout spec transitions, with implicit subnode management.
2016-02-10 15:30:49 -08:00
appleguy
e57f2cd00b
Merge pull request #1209 from garrettmoon/addPINRemoteImageDownloader
...
[ASImageNode] Add PINRemoteImage as the default image downloader for both Network & Multiplex nodes.
2016-02-10 15:11:33 -08:00
Garrett Moon
e3315f4b44
Skip decoding as ASDK will handle that.
2016-02-10 13:28:30 -08:00
Garrett Moon
622c851779
Fix downloader test
2016-02-10 12:24:45 -08:00
Levi McCallum
5cf5cb8452
Delegate layout frame calculation to sublayout method
2016-02-10 11:44:12 -08:00
Bin Liu
9e53dcd402
Fix allocatedNodes Subarray to match indexPaths subarray
2016-02-10 01:35:07 -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