58 Commits

Author SHA1 Message Date
appleguy
4297cb1eb5 Merge pull request #1398 from facebook/Placeholders
[ASDisplayNode] Placeholders should always be recreated if returning to cleared nodes, and remain until ASNetwork/MultiplexImageNode finish loading their image from the network.
2016-03-19 21:19:05 -07:00
Scott Goodson
8308a4ce49 [AsyncDisplayKit] Adopt #pragma once, remove last remaining dispatch_sync (UIScreen scale). 2016-03-19 19:56:41 -07:00
Scott Goodson
c5c7abb1d6 [ASDisplayNode] Placeholders should always be recreated if returning to past nodes.
If previously-displayed contents is gone (e.g. clearContents), and is not finished displaying
by the time the node is onscreen, recreate the placeholder immediately.
2016-03-18 21:13:26 -07:00
Eric Jensen
17aebcbaba Add a space between the ? and : in ternarys 2016-03-17 10:38:51 -07:00
Eric Jensen
c2f85397ce Mark depreciated protocols with deprivation attribute 2016-03-08 11:56:58 -08:00
Eric Jensen
3d34c177ed Flatten indentation of parameter hierarchy 2016-03-08 11:56:58 -08:00
Michael Schneider
3c32c48be0 Add clear image to ASMultiplexImageNode 2016-03-02 06:14:35 -08:00
Scott Goodson
ca8357a364 [AS*ImageNode] dispatch to the background before scheduling image download request (perf). 2016-02-20 13:01:03 -08:00
Anh Nguyen
8d603bf5e6 Check loadedImageIdentifer before sending it to delegate 2016-02-17 16:49:15 +07:00
Adlai Holler
da953ac421 Provide a Synchronous Path for Loading Memory-Cached Images 2016-02-16 19:43:47 -08:00
Garrett Moon
752f0540d0 Fix warnings 2016-02-10 10:38:41 -08:00
Garrett Moon
48fc4810cd Addressing comments 2016-02-09 14:06:41 -08:00
Garrett Moon
5a4e4dcac4 Add default PINRemoteImageDownloader 2016-02-08 16:00:19 -08:00
Scott Goodson
fe572c23fb Exclude all of ASMultiplexImageNode from tvOS - for now. 2016-01-23 11:45:09 -08:00
Aaron Schubert
cc4f604ea3 [tvOS] Initial commit to make build run. 2016-01-12 14:43:30 +00:00
Scott Goodson
840884272d Introduced ASHierarchyState. Created ASDisplayNode+FrameworkPrivate.h. Fixed deadlock. 2015-12-05 22:20:16 -08:00
Adlai Holler
fca8614c18 Scope like a boss 2015-11-29 21:22:37 -08:00
Adlai Holler
50b318b117 Lock and unlock manually when doing early return 2015-11-29 17:49:11 -08:00
Adlai Holler
e481782ccb ASMultiplexImageNode: only copy image identifiers once 2015-11-29 17:43:09 -08:00
Adlai Holler
7d3cf56b17 ASMultiplexImageNode: fix bad behaviors with imageIdentifiers property 2015-11-29 17:33:00 -08:00
Adlai Holler
46eca61dbf ASMultiplexImageNode: replace spin lock with mutex 2015-11-29 17:31:57 -08:00
Adlai Holler
dfc7c0cc0e Image nodes call fetchData when image source is updated while in fetch range 2015-11-29 17:29:44 -08:00
Adlai Holler
97e42da172 Merge branch 'master' into ImageIdentifierEquality
Conflicts:
	AsyncDisplayKit/ASMultiplexImageNode.mm
2015-11-23 18:36:02 -08:00
Adlai Holler
1ff0d7f648 Intentionally don't cancel image downloads in ASMultiplexImageNode.clearContents 2015-11-23 15:24:11 -08:00
Adlai Holler
2771ce875e Everyone gets an ASObjectIsEqual!! 2015-11-23 13:08:56 -08:00
Adlai Holler
93e5f905e8 Always use _setDownloadIdentifier: 2015-11-23 13:04:43 -08:00
Adlai Holler
7449809743 ASMultiplexImageNode: Use ASObjectIsEqual when comparing identifiers. 2015-11-23 13:00:35 -08:00
appleguy
1850238242 Merge pull request #738 from Adlai-Holler/DeprioritizeImageRequests
Demote Photos.framework image request QoS
2015-10-14 12:49:47 -07:00
Adlai Holler
a53c8a3c34 Improve error handling in ASMultiplexImageNode 2015-10-14 11:00:56 -07:00
Adlai Holler
b09d6a3602 Demote Photos.framework image requests to UserInitiated quality of service 2015-10-13 21:22:03 -07:00
Adlai Holler
cb407367be Cancel image requests in ASMultiplexImageNode.clearFetchedData 2015-10-07 10:08:54 -07:00
Adlai Holler
cdfd5c1fdd Check whether data source responds to asset method 2015-10-07 10:08:28 -07:00
Adlai Holler
6d73cee9fd Give ASMultiplexImageNodeDataSources an opportunity to provide PHAssets quicker 2015-10-06 16:35:50 -07:00
Adlai Holler
fffc76a353 Have ASMultiplexImageNode store its image request operation weakly 2015-10-06 13:21:42 -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
Adlai Holler
d5a6ad2123 Avoid accessing PHImageManager in ASMultiplexImageNode init 2015-10-02 15:41:01 -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
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
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
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
bbf9550e08 Use ASPhotosImageRequest in ASMultiplexImageNode, in a backwards-compatible way 2015-09-25 15:41:35 -07:00
Ryan Fitzgerald
4383e9ab2b releasing downloaded image when multiplex image node exits render range 2015-07-11 09:27:01 -04:00
Scott Goodson
e3f0e66cb3 Updating API names for network range and memory culling before ASDK 1.2 tag. 2015-05-21 22:43:38 -10:00