108 Commits
Author SHA1 Message Date
Scott Goodson 4c55f9555c Revert "[Layout Transition API] Simplify applying layout transition (#1886)"
This reverts commit 678df37017.
2016-08-04 19:28:07 -07:00
Michael Schneider 678df37017 [Layout Transition API] Simplify applying layout transition (#1886)
* Simplify applying layout transition in preparation for bigger layout transition API work

* Change from apply to complete in if layout transitions are involved and _applyLayout: to _setCalculatedLayout: for layout

* Change to applySubnodeInsertions and applySubnodeRemovals

* Change from completeTransition to commitTransition and flip logic around when to trampoline to the main thread for implicit hierarchy management

* More internal API improvements

* Fix merge conflicts

* Rename _layout to _calculatedLayout
2016-07-29 10:52:55 -07:00
appleguy 74bf376b2f [ASDisplayNode] Rename _propertyLock to __instanceLock__ to avoid subclass naming collisions. (#1941) 2016-07-16 15:32:13 -07:00
Michael Schneider 01fed69b26 Adds trampoline for inserting and deletion of nodes
Currently measurement always needs to happen on the main thread if implicit hierarchy management is enabled as adding and removing from nodes needs to happen on the main thread. We now will trampoline to the main thread to do the insertion and deletion of nodes.

This also resolves the issue that can occur if a node is already loaded deep in the layout hierarchy in the layout that the node is transforming to. Before insertion or deletion is happening we need to crawl the layout hierarchy to check that though.
2016-07-01 16:33:37 -07:00
Michael Schneider eef22074a4 Add caching for checking if ASDisplayNode can clear it contents or setNeedsDisplay: can be called on the layer 2016-06-20 13:04:44 -07:00
Hannah Troisi c857e809f4 Clean up header comments (for consistent Facebook licensing info) (#1741)
[Licensing] Clean up header comments (for consistent Facebook licensing info)
2016-06-11 23:31:39 -07:00
Levi McCallum f809d4a1c9 Let ASLayout determine if a node should measure 2016-06-05 09:32:48 -07:00
Levi McCallum 19e949e02f [ASDisplayNode] Move constrainedSize to layout 2016-06-05 09:30:57 -07:00
Levi McCallum 95f1ab4902 [ASDisplayNode] Rename ASDisplayNodeTransitionContext to ASLayoutTransition (#1680)
* [ASDisplayNode] Rename ASDisplayNodeTransitionContext to ASLayoutTransition

* Rename internal ivar to fit new naming

* Fix tabbing
2016-05-25 10:10:27 +07:00
rcancro 4b54144f55 Levi's comments 2016-05-11 10:21:11 -07:00
Michael Schneider d1054d6ed9 Move from ASSentinel to a atomic int 2016-05-05 20:25:07 -07:00
Michael Schneider dc6d2e7660 Improve Transition ID handling 2016-05-05 20:25:07 -07:00
Michael Schneider 42174210c5 Follow up for ASCollectionNode and ASTableNode background color fix 2016-04-19 16:07:42 -07:00
Michael Schneider 3793dc024e Improve setting special properties for certain classes directly to the UIView
- Remove duplicated code in ASCollectionNode and ASTableNode
- Fix setting the pending state to the view if applying the pending state to the view
2016-04-19 10:50:22 -07:00
appleguy 30a0c471ca Merge pull request #1528 from ejensen/instancetype
[Refactoring] Replace id with instancetype in initializers
2016-04-16 20:53:41 -07:00
Huy Nguyen 3dc2ceb0ad Remove ASDisplayNodeExtraIvars 2016-04-15 21:48:11 +03:00
Eric Jensen 527397ba7e Replace id with instancetype in initializers 2016-04-13 11:20:05 -07:00
Michael Schneider 28c4fede57 Add support for newly added a11y properties in iOS 8 / 9 and tvOS
New a11y properties:
- accessibilityNavigationStyle
- accessibilityHeaderElements
- accessibilityActivationPoint
- accessibilityPath
2016-04-09 11:23:25 -07:00
Michael Schneider f3303c1fb8 Add properties for accessibilty to ASDisplayNode to support layer backed nodes 2016-04-09 11:23:25 -07:00
Michael Schneider 4e757f0969 General improvements
- Refactor naming of ASEnvironmentCollection to ASEnvironmentState
- Remove struct pointers
- Move ASEnvironmentStatePropagation to a enum class
- Move merge functions to pure functions
- Move ASLayoutOptionsForwarding and ASLayoutableExtensibility into ASLayoutSpec and ASDisplayNode
- Remove ASLayoutableSetValuesForLayoutable and move into explicit classes (ASDisplayNode, ASTextNode)
2016-03-31 20:43:20 -07:00
Michael Schneider 96df35e41a Initial commit for ASEnvironment 2016-03-31 20:43:20 -07:00
appleguy d9ef0922d8 Merge pull request #1354 from ejensen/cleanup
[Refactoring] Objective-C 2.0 / Modern syntax for arrays, dictionaries, numbers; logic simplification
2016-03-17 01:06:33 -07:00
Eric Jensen 33fda7ab49 - Use modern Objective-C syntax.
-  Simplify comparisons.
-  Remove dead stores.
2016-03-15 22:34:29 -07:00
Huy Nguyen 22b105bfdc ASCollectionView doesn't animate size changes if some of the updated cell nodes don't want to 2016-03-15 16:17:43 -07:00
Huy Nguyen fa8f2f4429 Implement async transition 2016-03-11 18:56:58 -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 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
Garrett Moon eba6afc36b Revert "Don't clear contents when moving between nodes"
This reverts commit 6d1732fcbd.
2016-03-01 16:45:36 -08:00
Garrett Moon 6d1732fcbd Don't clear contents when moving between nodes 2016-03-01 09:57:07 -08:00
Adlai Holler 3ff833c4f5 [ASDisplayNode:UIViewBridge] Reduce calls to -isNodeLoaded 2016-02-21 10:10:04 -08:00
Adlai Holler 648dc817ad [ASDisplayNode] Use a C function to lazily create pending view state 2016-02-21 10:03:06 -08:00
Adlai Holler edf6ee59e8 [ASDisplayNode] Remove RespectThreadAffinityOfNode function 2016-02-20 15:43:00 -08:00
Adlai Holler a46bd8e29b More tests, all but 1 passing 2016-02-20 15:40:47 -08:00
Adlai Holler b5b5f9f559 Some clean up 2016-02-20 15:40:47 -08:00
Adlai Holler 99b674c346 Lay some foundation for our new pending state controller 2016-02-20 15:40:47 -08:00
Levi McCallum b267821d4c Wrap implicit node hierarchy management behind feature flag property 2016-02-10 19:21:29 -08:00
Levi McCallum 6f37bb40d9 Allow layouts to be accessible in context 2016-02-10 14:39:46 -08:00
Levi McCallum 499c3331ce Optimize insertion/deletion node calculation & expose inserted/deleted subnodes to transition context 2016-02-10 11:44:13 -08:00
Levi McCallum e57761ffbe Fix pending layout reference causing nil references 2016-02-10 11:44:13 -08:00
Levi McCallum 8737e242f8 Extract measurement and transition into different methods based on feedback 2016-02-10 11:44:12 -08:00
Levi McCallum 8bfa3e4012 Remove ivar 2016-02-10 11:44:12 -08:00
Levi McCallum 5cf5cb8452 Delegate layout frame calculation to sublayout method 2016-02-10 11:44:12 -08:00
Levi McCallum 3b1a32c413 Clean up implicit hierarchy management to enable custom animation 2016-02-10 11:44:11 -08:00
Levi McCallum 9dc358196a Basic implementation of transitioning API for layout specs 2016-02-10 11:44:10 -08:00
Scott Goodson 9e87813425 Micro-optimizations in ASDisplayNode that help reduce overhead when recursing large hierarchies. 2016-02-05 21:43:14 -08:00
Huy Nguyen fda9efafa6 Add timestamp to notifications of rendering engine and avoid race conditions in ASRangeControllerBeta
- Accurately remove notification observer
2016-02-04 15:44:44 -08:00
Huy Nguyen 69e674c1c8 Range controller registers to rendering engine and extern to full range if needed 2016-02-02 01:23:04 -08:00
Levi McCallum d168ec78ce Implement simple, in-order add/remove subnode support when changing layout specs 2016-02-01 17:49:48 -08:00
Levi McCallum 9f25b54f9e Support insertion on first layout of display node 2016-02-01 17:49:48 -08:00