Commit Graph
89 Commits
Author SHA1 Message Date
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
Levi McCallum 3abe6d9181 Simplify measure call structure 2016-02-01 17:49:47 -08:00
Garrett Moon d7d36c0a6b Addressing Scott's comments 2016-01-27 21:08:04 -08:00
Garrett Moon 01c1680904 Switch to instance methods of draw and display
This patch switches to instance methods of draw and display for
ASTextNode and ASImageNode to attempt to increase their performance.

It also fixes some thread safety issues in ASImageNode which appear
to have been regressions (though probably not hit very often).

And it sets up work for allowing modification of CGContexts before
and after a node's contents are drawn.
2016-01-27 20:08:02 -08:00
Levi McCallum ee23830318 Remove setNeedsDataFetch queuing, as interfaceState always performs fetch on re-enter 2016-01-27 18:25:39 -08:00
Levi McCallum ec7a3599bd Add setNeedsDataFetch method to queue off screen fetchData calls 2016-01-27 14:52:37 -08:00
Matej Knopp 0a45bd9596 [_ASAsyncTransaction] implement operation priority
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-26 15:31:40 +01:00
Scott Goodson 0feaa2a368 Improvements to the efficiency of recursivelySetInterfaceState: and the beta range controller. 2016-01-10 02:40:47 -08:00
Scott Goodson 984fe43997 [ASRangeController] Inspect delegate's ASInterfaceState to delay preloading beyond viewport until visible. 2016-01-03 19:14:07 -08:00
Scott Goodson 44feece701 Implement node-backing for ASTableView and ASCollectionView, with a strong back-pointer in these cases. 2015-12-26 23:05:34 -08:00
Scott Goodson a2cf2a88e6 Overhaul header files / includes to eliminate circular references that Xcode 7 is angry about. 2015-12-25 19:22:00 -08:00
Scott Goodson 928c440b4c Several small optimizations, especially to _ASPendingState and other hot paths. 2015-12-23 16:38:33 -08:00
Scott Goodson b8602d1073 Fix ASBasicImageDownloader tests - prevent use of init / new instead of +sharedImageDownloader. 2015-12-20 15:42:57 -08:00
Scott Goodson 97bb05d326 Order-of-magnitude speedup in handling of "disable visibility notifications"
Before, it was expensive to check this value, even though it was rarely set.
Now the cost is moved to setting the value, and is made very cheap to check with _hierarchyState.
2015-12-20 12:47:42 -08:00
Scott Goodson 872b3588d8 Complete merge of working window removal with ASHierarchyState changes in master. 2015-12-11 22:15:13 -08:00
Scott Goodson 840884272d Introduced ASHierarchyState. Created ASDisplayNode+FrameworkPrivate.h. Fixed deadlock. 2015-12-05 22:20:16 -08:00
Scott Goodson 254f55b758 Add locking for ASInterfaceState. Misc. cleanup. 2015-11-29 14:57:43 -08:00
Scott Goodson 936730d46b ASInterfaceStateVisible is now being driven by a new ASRangeHandlerVisible. 2015-11-29 13:24:42 -08:00
Scott Goodson ff0e94b4e1 Introduce ASInterfaceState on ASDisplayNode.
Later, this will be added to ASViewController.  Right now it is not hooked up to drive anything.
It will become the codepath that drives calls like -fetchData and -clearContents.
2015-11-28 18:22:03 -08:00
Scott Goodson 2a0b9c8e14 Substantially improve behavior of nested Table & Collection Nodes
This ensures memory cleanup happens correctly and introduces a new test project
to support developing new features while stressing tough use cases for correctness.
2015-11-14 15:25:35 -08:00