Commit Graph
2314 Commits
Author SHA1 Message Date
Huy Nguyen b21974e3f4 Address Scott's comment 2016-03-03 00:33:19 -08:00
Huy Nguyen f59eb98749 Remove threading assumption in ASDisplayNode measureWithSizeRange:" 2016-03-03 00:31:05 -08:00
appleguy 531052157a Merge pull request #1311 from nguyenhuy/async_layout_transition
[ASDisplayNode] Support measureWithSizeRange: on background, and seamless layout spec animation after complete.
2016-03-02 22:57:49 -08:00
Huy Nguyen 5e49cc4382 Layout transition can measure in background 2016-03-02 22:47:04 -08:00
Huy Nguyen 9162d7b2df Implement thread-safe bounds and use it in ASTextNode 2016-03-02 22:42:53 -08:00
Scott Goodson cc07d77d68 [ASViewController] Ensure we retain a reference to the UIVC object returned by the initWithViewController: block. 2016-03-02 22:38:56 -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
appleguy e82d1408d2 Merge pull request #1292 from nguyenhuy/visibility_improvements
[ASCellNode] Update visibility API to support new event types for initial visibility & invisibility (caused by VC transitions, etc)
2016-03-02 19:30:31 -08:00
appleguy a06c67f027 Merge pull request #1306 from facebook/TransactionLockingAndAssertion
[_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects.
2016-03-02 17:03:57 -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
Michael Schneider 3c32c48be0 Add clear image to ASMultiplexImageNode 2016-03-02 06:14:35 -08:00
Gareth Reese 2e53770d0e Didn't need the relayout 2016-03-02 14:00:25 +00:00
Gareth Reese 4060f40d32 Added preview images for single file URLs. Unfortunately doesn't seem possible for HLS video. 2016-03-02 13:53:19 +00:00
appleguy f4925a107c Merge pull request #1302 from nguyenhuy/fix_collection_data_controller
[ASCollectionDataController] Remove unncessary batch layout calls for supplementary nodes.
2016-03-01 18:16:27 -08:00
appleguy 8f0777e7e5 Merge pull request #1305 from garrettmoon/fixRecursivelyEnsureDisplay
[ASDisplayNode] recursivelyEnsureDisplay should trigger display even if a stale contents exists (re-display)
2016-03-01 17:43:28 -08:00
Garrett Moon 2cee9bfca8 Just because we have contents, doesn't mean we don't want to display 2016-03-01 17:41:29 -08:00
appleguy 47d2981487 Merge pull request #1304 from garrettmoon/betterSkipClearContents
[ASDisplayNode] Coalesce -clearContents onto the next runloop, so it can be skipped if re-added to hierarchy in move operation.
2016-03-01 17:38:36 -08:00
Michael Schneider 6e69c312d6 Dispatch deallocation of UIImage on background thread
Destruction of bigger images in ASNetworkImageNode on the main thread can be expensive and can take some time, so we dispatch onto a background queue to actually dealloc.
2016-03-01 17:04:38 -08:00
Garrett Moon 057c431dfb Thanks @scottg, this is a better more generalized solution. 2016-03-01 16:46:03 -08:00
Garrett Moon eba6afc36b Revert "Don't clear contents when moving between nodes"
This reverts commit 6d1732fcbd.
2016-03-01 16:45:36 -08:00
Huy Nguyen 1dffc20e4d Address documentation of ASCellNodeVisibilityEvent 2016-03-01 15:56:08 -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
Luke Zhao 818c5bab9c only adjust constraint size if the datasource doesn't implement ConstrainedSizeForNode 2016-03-01 13:16:10 -08:00
appleguy c3f7197bf3 Merge pull request #1300 from garrettmoon/skipClearContentsOnNodeMove
[ASDisplayNode] Don't clear contents when moving between parent nodes.
2016-03-01 12:03:32 -08:00
appleguy 99e3f45f46 Merge pull request #1297 from maicki/FixRangeModeCrash
[ASViewController] Fix crash accessing automaticallyAdjustRangeModeBasedOnViewEvents
2016-03-01 11:44:21 -08:00
Garrett Moon 6d1732fcbd Don't clear contents when moving between nodes 2016-03-01 09:57:07 -08:00
rcancro d4bced1fb5 Fix bug when rendering text the second time
A text node's renderer is often invalidated. Save the renderer's constrained size locally so we can use it when creating a new renderer after invalidation.
2016-03-01 08:57:43 -08:00
Michael Schneider def96ea726 Fix crash accessing automaticallyAdjustRangeModeBasedOnViewEvents property in ASViewController 2016-03-01 06:10:59 -08:00
Gareth Reese 6318db45c8 Updated the Videos sample app to cover the API changes 2016-03-01 13:06:29 +00:00
Gareth Reese f9c8c043a1 First working version for HLS streams 2016-03-01 12:08:09 +00:00
Gareth Reese 75f615b223 Rearranged the method order to put the construction in one place and moved construction of the playerNode to -constructPlayerNode for DRY 2016-03-01 10:25:45 +00:00
appleguy e9fcfefbdd Merge pull request #1294 from vivqu/batch_fetch
[ASCollectionView] Account for contentInset when calculating ASScrollDirection
2016-02-29 22:31:40 -08:00
Huy Nguyen c64f23725f Update ASCellNode visibility API 2016-02-29 20:26:16 -08:00
Vivian Qu 31b576ebcd Address comment 2016-02-29 17:49:26 -08:00
Vivian Qu d28c3c27c6 Account for contentInset when calculating ASScrollDirection 2016-02-29 17:10:39 -08:00
Michael Schneider 084e6f82c1 Trigger updating interfaceState for cells in case ASTableView or ASCollectionView becomes visible or invisible 2016-02-29 17:04:25 -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 b2eaf83264 Ignore call to updateCurrentRangeWithMode: to prevent trigger view creation before node was loaded 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 760f4ada91 Add API to ASViewController to automatically adjust the range mode of the containing node based on view events 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 5e35ef7938 [ASDisplayNode] Ensure display is triggered properly even before layers are onscreen (in display range). 2016-02-29 00:46:45 -08:00