534 Commits

Author SHA1 Message Date
appleguy
c8518c7fa6 Merge pull request #689 from facebook/Synchrotron
Implementation of Synchronous Concurrency features for AsyncDisplayKit 2.0
2015-09-28 14:49:13 -07:00
Scott Goodson
a58844379c Implementation of Synchronous Concurrency features for AsyncDisplayKit 2.0
This provides internal features on _ASAsyncTransaction and ASDisplayNode to facilitate
implementing public API that allows clients to choose if they would prefer to block
on the completion of unfinished rendering, rather than allow a placeholder state to
become visible.

The internal features are:
-[_ASAsyncTransaction waitUntilComplete]
-[ASDisplayNode recursivelyEnsureDisplay]

Also provided are two such implementations:
-[ASCellNode setNeverShowPlaceholders:], which integrates with both Tables and Collections
-[ASViewController setNeverShowPlaceholders:], which should work with Nav and Tab controllers.

Lastly, on ASDisplayNode, a new property .shouldBypassEnsureDisplay allows individual node types
to exempt themselves from blocking the main thread on their display.

By implementing the feature at the ASCellNode level rather than ASTableView & ASCollectionView,
developers can retain fine-grained control on display characteristics.  For example, certain
cell types may be appropriate to display to the user with placeholders, whereas others may not.

Follow-up work will include unit tests, revisiting names, and the header locations of definitions.
2015-09-27 19:14:36 -07:00
Huy Nguyen
a94cd9dd99 Remove externalCompletedNodes getter in ASDataController. 2015-09-28 00:18:49 +03:00
Huy Nguyen
e619edcd86 Ensure data consistency between ASDataController and its delegate while executing update transactions. 2015-09-27 22:59:36 +03:00
appleguy
c824644482 Merge pull request #685 from facebook/ASTableViewStressTestFix
Fix simple issue with ASTableViewStressTest, make Table / Collection handle changes to dataSource / delegate.
2015-09-24 20:14:51 -07:00
Scott Goodson
ee4b771d5d Fix simple issue with ASTableViewStressTest, make Table / Collection handle changes to dataSource / delegate. 2015-09-24 19:59:12 -07:00
Scott Goodson
47be24037d Reduce _ASAsyncTransaction allocations by ensuring nodes without display methods don't create them. 2015-09-24 19:26:00 -07:00
rcancro
52091eb589 Placeholder bug in ASEditableTextNode
When setting a default placeholder and an attributedString before `_textKitComponents.textView` was created, the placeholder and the string were both appearing in the text node.

`_updateDisplayingPlaceholder` is called in `setAttributedString`, but since  `_textKitComponents.textView` is nil the placeholder was not hidden. Calling `_updateDisplayingPlaceholder` after `_textKitComponents.textView` loads fixes this.
2015-09-23 16:11:46 -07:00
appleguy
7dbb07161f Merge pull request #674 from adly-holler/editable-text-assert-viewbacked
Assert that ASEditableTextNode stays view-backed
2015-09-22 13:51:16 -07:00
Adlai Holler
20c74229a9 Updates from PR 2015-09-22 13:16:59 -07:00
Steven Ramkumar
d09888f9c2 Add a indexPathForNode: to ASTableView 2015-09-22 12:09:56 -07:00
Adlai Holler
e9f463da73 Use the right name 2015-09-21 00:16:02 -07:00
Adlai Holler
a1ffa499cb Assert against the user trying to set isLayerBacked on ASEditableTextNode 2015-09-21 00:15:03 -07:00
Adlai Holler
efe198e814 Use ceilSize in ASEditableTextNode 2015-09-20 21:18:06 -07:00
Adlai Holler
4ef2e572e6 Elevate ceilPixel functions to ASTextNodeTextKitHelpers.h, add ceilSize 2015-09-20 21:17:24 -07:00
appleguy
ca9b1caca4 Merge pull request #672 from adly-holler/fix-collectionview-update-crash
Fix collection view data inconsistency
2015-09-20 11:21:15 +02:00
appleguy
aee6709229 Merge pull request #668 from adly-holler/imagenode-opaque-bg
Fill image context with background color if image node is opaque
2015-09-20 11:06:53 +02:00
Adlai Holler
86c1fa3981 Rename flag, default it to true, shorten some comment lines 2015-09-19 14:21:33 -07:00
Adlai Holler
7cd79e6e6f Tweak comment 2015-09-19 13:43:18 -07:00
Adlai Holler
f0f26d3dab Tweak the new pendingReload flag 2015-09-19 13:40:41 -07:00
Adlai Holler
77490e11c0 ASCollectionView: Suspend updates while reload data is pending 2015-09-19 13:35:57 -07:00
Adlai Holler
d0f4bacc67 ImageNode: fill background more efficiently 2015-09-19 12:23:51 -07:00
Scott Goodson
a8924a2977 Fix building test / profile under Xcode 7
It is strictly enforcing this unused variable (when asserts are compiled out).
2015-09-19 20:55:40 +02:00
Adlai Holler
c872485459 Fill image context with background color if image node is opaque 2015-09-17 21:59:52 -07:00
Adlai Holler
03648d12a8 Clarify ASCellNode docs that it is for use with collection view as well 2015-09-17 12:30:31 -07:00
Huy Nguyen
a864341710 Remove nonnull and nuulable annotations in ASViewController. Travis don't recognize them (yet). 2015-09-17 16:07:43 +03:00
Huy Nguyen
fcd76dbd19 Use nonnull annotation, instead of sanity check, for node property in ASViewController. 2015-09-17 15:59:37 +03:00
Huy Nguyen
72d108cd98 Minor fixes in ASViewController and Multiplex sample. 2015-09-17 15:58:21 +03:00
Huy Nguyen
07c0d78c71 Add ASViewController and update Multiplex sample to use it. 2015-09-17 15:58:21 +03:00
appleguy
21bdbbe12f Merge pull request #665 from jflinter/jack-build-phase-cleanup
Clean up Cocoa Touch framework target
2015-09-17 10:15:21 +02:00
Jack Flintermann
ce33149548 make additional private headers actually private; import all public headers in AsyncDisplayKit.h 2015-09-16 23:31:48 -04:00
Jack Flintermann
ff1be72e04 add module.modulemap 2015-09-16 20:15:48 -04:00
rcancro
7e3a0b3223 Changed copyIntoOptions to copyFromOptions
I thought I already did this. I think copyFrom is a better name.
2015-09-16 14:33:54 -07:00
Paul Young
77d74e60f0 Update header imports. 2015-09-16 12:17:01 -07:00
Paul Young
77dfd222d3 Merge branch 'master' into compiler-warnings 2015-09-16 12:13:50 -07:00
Paul Young
8426ab1122 Use a shared header for the static library and dynamic framework. 2015-09-16 12:12:21 -07:00
appleguy
b557075371 Merge pull request #655 from nguyenhuy/relayout_editing_mode
Relayout table view cell nodes if there is a mismatch between content view size and the node's constrained size
2015-09-16 15:20:48 +02:00
Huy Nguyen
094d2570f5 Force the layout of subviews when _ASTableViewCell transitioned to another state
Relayout will be triggered in layoutSubviews (if needed).
2015-09-16 15:25:40 +03:00
Huy Nguyen
0c068c442d Fix appledoc warnings in ASLayoutSpec.h 2015-09-16 14:30:37 +03:00
Huy Nguyen
2d575fcafc Relayout table view cell nodes if there is a mismatch between content view size and the node's constrained size
- Above is the generic case. Correctly handling it means relayout when the table view enters or leaves editing mode is solved as well.
- Async data source API removal: In a table view, cell nodes should always fill its content view and table view widths. Thus async data source can no longer provide custom constrained size for cell nodes. This removal allows table view to better handle relayout.
- Some more tests are added to ASTableViewTests to check against use cases handled in this diff.
2015-09-16 11:41:34 +03:00
rcancro
9c8aaeb17e Move ASLayoutOptionsPrivate to the private folder
fixes:
https://github.com/facebook/AsyncDisplayKit/issues/654
2015-09-15 17:11:20 -07:00
rcancro
3b4055fcd3 few more doc changes. 2015-09-15 12:38:41 -07:00
rcancro
2d30a81a75 added documentation 2015-09-15 11:05:30 -07:00
rcancro
2f3562fa09 scott's comments 2015-09-15 09:11:19 -07:00
rcancro
01be5acece added a callback for initWithViewBlock/initWithLayerBlock 2015-09-14 20:36:08 -07:00
Huy Nguyen
7dc9b7fc40 Fix appledoc warnings. 2015-09-15 00:58:48 +03:00
rcancro
2e3d59a73e spelling 2015-09-11 16:13:18 -07:00
rcancro
b14e189bfb Addressed comments to LayoutOptions PR 2015-09-11 16:07:18 -07:00
appleguy
dc0d22dff4 Merge pull request #647 from rcancro/stackBaseLine
Removed ASBaselineLayoutSpec and made baseline alignment part of ASStackLayoutSpec
2015-09-10 18:16:37 -07:00
rcancro
4bb8472182 Removed ASBaselineLayoutSpec and made baseline alignment part of ASStackView 2015-09-10 17:29:39 -07:00