1400 Commits

Author SHA1 Message Date
Adlai Holler
cdfd5c1fdd Check whether data source responds to asset method 2015-10-07 10:08:28 -07:00
ricky cancro
89a216b90d Fixes to baseline stack alignment
1) Set the ascender/descender of an ASTextNode when the attributeString is set. Previously ascender/descender were only being computed in `setValuesFromLayoutable` and only when the attribute string was not nil. May make sense to remove the computation from `setValuesFromLayoutable` entirely.
2) Remove ability to allow different children of a stack spec to aling to different baselines. This wasn't working before and I'm not convinced it is possible to do properly/useful enough to invest the time.
3) Have all stack spec run `ASStackBaselinePositionedLayout::compute` to compute the stack's ascender and descender. Even if the stack isn't aligning its children to a baseline, the stack itself may be a child of another stack that IS aligning to a baseline.
2015-10-06 21:41:39 -07:00
Adlai Holler
6d73cee9fd Give ASMultiplexImageNodeDataSources an opportunity to provide PHAssets quicker 2015-10-06 16:35:50 -07:00
appleguy
e41f7c59c4 Merge pull request #717 from levi/scrollnode-initializer
Use long-form view block initializer for better Swift support
2015-10-06 15:26:31 -07:00
appleguy
ed7f2274f9 Merge pull request #711 from garrettmoon/addSupportForDisablingAndEnablingShouldRasterize
Adds support for disabling and re-enabling should rasterize.
2015-10-06 13:36:54 -07:00
appleguy
656fbeb526 Merge pull request #706 from facebook/NilDelegate
Properly support operating with nil asyncDelegate for Table & Collection.
2015-10-06 13:35:23 -07:00
Adlai Holler
fffc76a353 Have ASMultiplexImageNode store its image request operation weakly 2015-10-06 13:21:42 -07:00
Garrett Moon
8a70c8d416 Adds support for disabling and re-enabling should rasterize. 2015-10-06 11:47:13 -07:00
Levi McCallum
1f799a6687 Use long-form view block initializer for better Swift support 2015-10-06 09:34:57 -07:00
Adlai Holler
1801620094 Make ASTextNode copy exclusionPaths and attributedString 2015-10-06 00:46:20 -07:00
Adlai Holler
ae3eb70f6a Public API fast paths in ASTextNode 2015-10-06 00:40:33 -07:00
Adlai Holler
87caed27e2 Add more deep compares when setting public properties to the same value 2015-10-05 23:48:48 -07:00
Adlai Holler
f0b7e150cd Limit 1 inflight Photos.framework request per multiplex image node 2015-10-05 23:40:33 -07:00
Adlai Holler
d94dcdef0f Only do PHAsset metadata requests one at a time to workaround Photos framework deadlock 2015-10-05 23:40:33 -07:00
Adlai Holler
ce97b56580 Sugar 2015-10-05 20:41:21 -07:00
Adlai Holler
c5b5bdd29c Use deep compare when setting image identifiers in ASMultiplexImageNode 2015-10-05 20:34:42 -07:00
Garrett Moon
b1d03f1d58 Address comments 2015-10-05 16:02:01 -07:00
Garrett Moon
d6c107a896 Fix shouldRasterizeSubnodes skipping setting offset and clipping. 2015-10-05 16:02:01 -07:00
Adlai Holler
ee970d412b Annotate ASCollectionViewProtocols.h 2015-10-05 13:48:09 -07:00
Adlai Holler
8bb9d173dc Merge branch 'master' into update-objc
Conflicts:
	AsyncDisplayKit/ASDisplayNode+Subclasses.h
	AsyncDisplayKit/ASMultiplexImageNode.h
	AsyncDisplayKit/ASViewController.h
	AsyncDisplayKit/Details/ASDataController.h
2015-10-05 13:24:16 -07:00
Adlai Holler
99b9f73b1a Fix index into size ranges 2015-10-05 11:51:05 -07:00
Adlai Holler
33c07db58c Set node.frame entirely 2015-10-05 11:42:25 -07:00
Adlai Holler
4601fccb5a Optimize ASDataController._layoutNodes 2015-10-05 11:37:29 -07:00
Scott Goodson
77745c55b0 Properly support operating with nil asyncDelegate for Table & Collection. 2015-10-04 17:11:41 -07:00
appleguy
67cf6d3951 Merge pull request #705 from facebook/ThreadAffinity
Improved messages for thread affinity and frame transform identity assertions.
2015-10-04 16:24:39 -07:00
Scott Goodson
61bb4f022e Improved messages for thread affinity and frame transform identity assertions. 2015-10-04 11:15:57 -07:00
appleguy
057422d52b Merge pull request #699 from rcancro/staticLayout
Fix static layout to ensure it always considers its sub layout's preferred sizes.
2015-10-04 10:52:02 -07:00
ricky cancro
eb5e670e5d wasn't copying alignSelf 2015-10-02 20:58:52 -07:00
appleguy
897f7210ad Merge pull request #687 from Adlai-Holler/AdvancedPhotos
Advanced Photos Integration
2015-10-02 16:40:58 -07:00
ricky cancro
45a555cdb5 Static layout bug?
I noticed when creating a static layout that the sizeRange of the children was being ignored. The case was:

I had an image as a child of a static layout
The image was set to have an exact range of 90x90
When the static layout was measured, the constrained size came in as 375xInf (the width of the containing node and unbounded)
The static layout computed its final size as 375x90

According to the comments in component kit's header file the static layout  "[c]omputes a size that is the union of all childrens' frames." It appeared that we are only doing that in the unbounded direction. My fix is to do it in both directions.
2015-10-02 15:56:31 -07:00
Adlai Holler
304ec9b543 Refuse to parse ph:// URLs if iOS < 8 for safety 2015-10-02 15:51:32 -07:00
Adlai Holler
d5a6ad2123 Avoid accessing PHImageManager in ASMultiplexImageNode init 2015-10-02 15:41:01 -07:00
appleguy
6d369ff815 Merge pull request #697 from garrettmoon/fixCornerRadius
Corner radius and clipsToBounds should be captured outside block
2015-10-02 15:00:14 -07:00
Adlai Holler
35c118aff0 Merge branch 'master' into AdvancedPhotos
Conflicts:
	AsyncDisplayKit/ASMultiplexImageNode.mm
2015-10-02 12:45:49 -07:00
Adlai Holler
de1f9788f3 Simplify creation of Photos Framework NSURLs in ASMultiplexImageNode 2015-10-02 12:44:21 -07:00
Garrett Moon
c90708a25b Corner radius and clipsToBounds should be captured outside block 2015-10-02 09:30:49 -07:00
appleguy
fd88522f84 Merge pull request #636 from nguyenhuy/fixSetNeedsLayout
Use getters and setters while adjusting position of a node
2015-10-01 18:08:28 -07:00
Huy Nguyen
22fba5a108 Revert "Use getter and setter of other properties in ASDisplayNode's frame setter."
This reverts commit 93e53bbd87077c1a058dd80ae587f5bff2b36047.
2015-10-01 11:13:49 +03:00
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
Adlai Holler
5f49e0f67d If Photos framework image is delivered on main queue, dispatch async to background queue 2015-09-26 19:50:36 -07:00
Adlai Holler
f6fe3b07d8 Request and receive images in background queue 2015-09-26 19:17:43 -07:00
Adlai Holler
ffa0829fc9 Update & document changes to ASPhotosFrameworkImageRequest handling of PHImageRequestOptionsDeliveryMode 2015-09-26 18:41:38 -07:00
Adlai Holler
73af8f1c8b Simplify ASImageIdentifier definition 2015-09-26 18:05:12 -07:00
Adlai Holler
bf88bd8e19 Rename image request class, add deliveryMode into the request params 2015-09-26 13:40:00 -07:00
Adlai Holler
06556d04a3 ASMultiplexImageNode uses high quality format when requesting images 2015-09-25 15:54:17 -07:00
Adlai Holler
e787c40411 Only parse photos URL after we check the scheme 2015-09-25 15:45:14 -07:00
Adlai Holler
bbf9550e08 Use ASPhotosImageRequest in ASMultiplexImageNode, in a backwards-compatible way 2015-09-25 15:41:35 -07:00