52 Commits

Author SHA1 Message Date
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
Ryan Nystrom
4fa03a01d1 Functioning Preload range
Refactor how we do ranges so they can be arbitrarily managed. Introduce the concept of a preload range.
2015-02-26 15:41:32 -08:00
Nadine Salter
3b8f275a2a Revert "Let ASMultiplexImageNode skip failed image identifiers" 2015-02-09 16:35:38 -08:00
andyscott
11e3cf518c Slight naming adjustments for recent ASMultiplexImageNode additions 2015-01-21 22:30:24 -08:00
andyscott
60b27829e1 Let ASMultiplexImageNode skip failed image identifiers 2015-01-15 15:25:41 -08:00
Ryan Nystrom
d9a3bac05d Suppress build warning with designated initializer 2015-01-14 15:43:28 -08:00
Ryan Nystrom
ae1349eb16 Start downloading images when multiplex node is displayed
fixes #178
2015-01-07 17:18:00 -08:00