Commit Graph
45 Commits
Author SHA1 Message Date
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
Nadine Salter 79e65342b1 Working-range-driven image loading.
Add a `usleep(1.0 * USEC_PER_SEC)` delay to ASBasicImageDownloader and
slowly scroll through the Kittens sample project.  Without this patch,
you'll see that images only start downloading after their purple
placeholders appear onscreen.  With it, images can download and render
before you scroll them onscreen, thanks to the working range.
2014-12-02 19:23:23 -08:00
Nadine Salter 3c8d4e9517 ASMultiplexImageNode.
Initial open-source release of ASMultiplexImageNode.  Documentation and
example code forthcoming.

Note:  ASMultiplexImageNode requires Xcode 6 to compile.  Tests are now
compiled against the iOS 8 SDK and run on iOS 7.1 and iOS 8.
2014-11-17 15:02:17 -08:00