Garrett Moon
3bcbfb149d
Add support for animated GIFs
...
Summary:
Use NSData as key
Add chunking of files
Add support for Animated Images
This adds support for GIF playback in ASDK. It's not currently ready
for merging to public ASDK – for one the GIF decompression may make
more sense in PINRemoteImage.
Removed duration as it wasn't used
Make cover image lazily loaded
Differential Revision: https://phabricator.pinadmin.com/D82033
2016-04-13 14:23:02 -07:00
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