Commit Graph
4676 Commits
Author SHA1 Message Date
appleguy 58cf96ad67 Merge pull request #1617 from garrettmoon/updatePodspec
[Build / CocoaPods] Fix podspec linting, beta 2 of PINRemoteImage *should* work with tvos without a subspec
2016-05-03 19:32:07 -07:00
Garrett Moon 025dd55312 Dang, message local var, not ivar 2016-05-03 15:59:21 -07:00
Garrett Moon 938ecd9b6f Fix deadlock when laying out on multiple threads
Summary:
We observed a deadlock which occurred when two threads were laying out the same set of nodes.

On one thread, layout would occur on a leaf node. It would lock and as part of this layout
process, ASDK walks up the node tree and calls __setNeedsLayout on its supernode until it
reaches the supernode with no supernode. When the supernode gets its call to __setNeedsLayout
it also locks. So leaf node locks and then awaits supernode lock.

On another thread, we're doing a layout pass on the supernode in the above thread. This locks
the supernode and attempts to lock the leaf node. This deadlocks (remember the above thread
is holding onto the leaf lock and awaiting the supernode lock. This thread is holding onto
the supernode lock and awaiting the leaf lock).

This is all exacerbated by the use of recursive locks.
2016-05-03 15:56:38 -07:00
Garrett Moon dd87885269 beta 2 of PINRemoteImage *should* work with tvos without a subspec 2016-05-03 15:47:54 -07:00
Erekle b3af10d4ad Merge remote-tracking branch
# Conflicts:
#	AsyncDisplayKit/ASVideoNode.mm
2016-05-03 22:59:54 +04:00
appleguy a9e742c92f Merge pull request #1606 from wendylu/render_fix
[ASNetworkImageNode] Fix threading issue in current image quality
2016-05-02 18:02:29 -07:00
appleguy 083bc9d028 Merge pull request #1596 from maicki/AddEditorConfig
[Build / Xcode] Add .editorconfig for coding style
2016-05-01 23:19:19 -07:00
appleguy 7459b5ddc8 Merge pull request #1607 from chourobin/feature/asset-loading
[ASVideoNode] Prepare asset for playback in a uniform way
2016-05-01 16:40:25 -07:00
Erekle 34e6238391 _delegateFlags
added _delegateFlags like in ASCollectionView
2016-05-01 17:11:40 +04:00
Robin Chou b700eeb32c Use ASPerformOnMainThread helper. -fetchData improvements. 2016-04-30 17:22:11 -04:00
Wendy fd4d18259e Use dispatch_async for setting currentImageQuality to ensure current order 2016-04-29 22:30:56 -07:00
Scott Goodson 2032cffd90 [Cocoapods, Build] Disable tvOS in podspec for now due to Cocoapods support problems. 2016-04-29 14:50:45 -07:00
Erekle 2c2a73dc83 playbackBufferEmpty and spinner
added playbackBufferEmpty logic, moved spinner show/hide to separate
methods.
2016-04-29 20:49:14 +04:00
Michael Schneider 5b2aa9d739 Add .editorconfig 2016-04-29 07:52:44 -07:00
Erekle 399703dbb2 new delegate methods
Added new delegate methods; updated Videos example project
2016-04-29 12:59:15 +04:00
appleguy f54dd0f5ef Merge pull request #1587 from maicki/AddAsyncDisplayKitOverviewExample
[Examples] AsyncDisplayKitOverview: A new app with a catalog of UI components!
2016-04-28 22:05:24 -07:00
Robin Chou 39ee33f21a Update remaining tests. 2016-04-28 21:13:34 -04:00
Robin Chou 9c2909a968 Updating tests. 2016-04-28 21:04:04 -04:00
Robin Chou 75b55974b5 Loads asset values with -loadValuesAsync. 2016-04-28 20:02:15 -04:00
Wendy 492d0d7ad6 [ASNetworkImageNode] Fix threading issue in current image quality
Summary:
Because we trampoline to main when setting _currentImageQuality, there would be situations where displayWillStart was called, we get a cached image and set currentImageQuality to 1.0, and then a background thread calling setDefaultImage would enqueue an operation that sets currentImageQuality to 0 and overwrites the correct value
2016-04-28 14:52:31 -07:00
Michael Schneider 35de3051a7 Enable sharing for Sample target 2016-04-27 15:52:14 -07:00
Michael Schneider a05963d48d Add Sample Target 2016-04-27 15:52:14 -07:00
Michael Schneider 5969c7c0ae Initial commit for AsyncDisplayKitOverview 2016-04-27 15:52:14 -07:00
Hannah Troisi 1dd282fe4b Merge remote-tracking branch 'facebook/master' 2016-04-27 13:50:57 -07:00
Hannah Troisi 0cf7aaed1d Merge remote-tracking branch 'facebook/master' 2016-04-27 13:49:32 -07:00
Scott Goodson fc0db52884 [Cocoapods, Build] Podspec to version 1.9.73 in preparation for releasing 1.9.7.3, conforming to 3-number version limit imposed on dynamic frameworks. 1.9.7.3 2016-04-26 23:35:22 -07:00
appleguy 1a2184db98 Merge pull request #1599 from ejensen/video-ui-blocking
[ASVideoNode] Fix UI thread blocking with remote assets
2016-04-26 23:26:15 -07:00
Eric Jensen f2ab6ca6dd Restructure conditional logic 2016-04-26 23:15:14 -07:00
appleguy 32d59aa8b7 Merge pull request #1581 from wendylu/update-asdk
[ASNetworkImageNode] API to notify when each render of progressive image is complete.
2016-04-26 20:14:09 -07:00
Eric Jensen fcf4a4d112 Prevent unnecessary locking when generating a placeholder image on a background thread 2016-04-26 19:44:53 -07:00
Eric Jensen e3817ac42d Prevent UI blocking caused by accessing the AVAsset's 'tracks' property on the UI thread 2016-04-26 19:42:05 -07:00
Wendy 72a5e9d317 Don’t update gif project 2016-04-26 18:35:40 -07:00
Wendy 4daee3ca76 Update PINRemoteImage 2016-04-26 18:35:03 -07:00
Wendy fe5c4caf90 Lock properly when setting currentImageQuality 2016-04-26 18:35:03 -07:00
Wendy 0b55df9649 Add the ability for ASNetworkImageNodes to keep track of their progressive image quality 2016-04-26 18:33:59 -07:00
appleguy f7985d2d26 Merge pull request #1593 from maicki/FixASCellNodeVisiblityDeallocationAssertion
[ASDisplayNode] Fix assertion on cell deallocation due visibility not being cleared
2016-04-26 12:28:08 -07:00
Michael Schneider 2ab82f5995 Move to fast enumeration for iterating through an array
We move from block based enumeration for the array to fast enumeration as from a benchmark perspective this is faster. For the dictionary we stay with block based enumeration as looking up the value for the key in e.g. fast enumeration would be slower as using the block based API where we get the key and value for passed in
2016-04-26 10:45:35 -07:00
Michael Schneider 32f35d9d54 Use visibleNodeIndexPathsForRangeController: to base on visibleNodes in ASTableView 2016-04-26 10:37:32 -07:00
Michael Schneider 28cfd60900 Fix Assertion on cell deallocation due visibility not being cleared
Further information:
- We mark every node as visible in the ASRangeController which NSIndexPath is returned from visibleNodeIndexPathsForRangeController:
- In visibleNodeIndexPathsForRangeController: we get the visible index path's via a call to UITableView's "indexPathsForVisibleRows" method.
- Unfortunately in this case we cannot use indexPathsForVisibleRows to get all the visible index paths as apparently in a grouped UITableView it would return index paths for cells that are just a bit over the edge of the visible area.
- But this edge cells will never get a call for -tableView:cellForRowAtIndexPath:, but we will mark them as visible in the range controller
- In tableView:cellForRowAtIndexPath: we call -configureContentView:forCellNode
- Because we never get a -configureContentView:forCellNode call for the edge cells, the _ASDisplayView of the nodes will never be added to the window and get a willMoveToWindow and didMoveToWindow call and it's never get's added to the window for now and so the node is NOT marked as "in the hirarchy"
- If the deallocation of the views are happening without the UITableView ever scrolled, the cells don't get a call to __exitHierarchy as they were never added to the window and stay in the interface state "visible" and an exception will be raised within the dealloc method of the ASDisplayNode
2016-04-26 10:37:06 -07:00
appleguy bf52bc55cc Merge pull request #1591 from garrettmoon/fixAnimatedGIFWarning
Specifies beta of PINRemoteImage
2016-04-25 19:39:19 -07:00
appleguy 8a7fe22c19 Merge pull request #1590 from maicki/FixProgressImageBlockDeadLock
[ASNetworkImage] Fix possible deadlock introduced yesterday in ASNetworkImageNode
2016-04-25 13:27:25 -07:00
Garrett Moon 7f8edb8537 Specifies beta of PINRemoteImage 2016-04-25 13:18:31 -07:00
Michael Schneider ce6e11c6d2 Fix deadlock in ASNetworkImageNode
Calling _updateProgressImageBlockOnDownloaderIfNeeded should be called without _lock held. We will lock super to read our interface state and it's best to avoid acquiring both locks.
2016-04-25 13:15:11 -07:00
appleguy 2adc616e93 Merge pull request #1526 from Adlai-Holler/ImageNodeImprovements
[ASImageNode] Improvements to progressive decoding and cache accesses.
2016-04-23 23:05:41 -07:00
Scott Goodson b99910a149 [Examples, Build] Fix project configuration of two example apps that were incompatible with modern Cocoapods. 2016-04-22 23:04:12 -07:00
Scott Goodson 15a4e18844 [Examples] Officially add tvOS to podspec, ensure Podfiles correctly show minimum supported version 7.0 instead of 7.1 2016-04-22 20:29:52 -07:00
appleguy 094f327779 Merge pull request #1585 from maicki/RemoveASLayoutOptionsLocking
Remove ASLayoutOptions locking
2016-04-22 20:25:10 -07:00
Michael Schneider bcd91f18ce Remove ASLayoutOptions locking 2016-04-22 19:54:40 -07:00
appleguy 77713019d2 Merge pull request #1575 from aaronschubert0/tvOS
[tvOS] Improve tvOS code based upon comments.
2016-04-22 19:47:43 -07:00
appleguy d968094778 Merge pull request #1583 from maicki/AddLayoutSpecBlockFollowUp
[ASDisplayNode] Add layout spec block follow up
2016-04-22 19:45:00 -07:00