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