Commit Graph

2209 Commits

Author SHA1 Message Date
appleguy
a9e3eacfe5 [ASCellNode] Add gating for -convertRect: call upon invisibility notification for iOS 7 & 8 edge case. (#1881)
* [ASCellNode] Add gating for -convertRect: call upon invisibility notification for iOS 7 & 8 edge case.

This should resolve https://github.com/facebook/AsyncDisplayKit/issues/1659, which corresponds to this
Fabric log for Pinterest: https://fabric.io/pinterest6/ios/apps/com.pinterest.enterprise/issues/5776fbfeffcdc042501a5f20/sessions/c178e977614b4ebab853084847fb241
8

* [ASCellNode] Additional improvements to visibilityDidChange: gating.
2016-07-10 16:01:55 -07:00
Flo
2e65339f33 [ASVideoNode, ASVideoPlayerNode] Add video composition and audio mix capabilities (#1800)
* [ASVideoNode] Add delegate method called when the currentItem is set.

* [ASVideoNode] Add videoComposition and audioMix properties to the ASVideoNode.

* [ASVideoPlayerNode] Add new initialiser with videoComposition and audioMix, and forward new delegate method.

* [ASVideoPlayerNode] Forward missing ASVideoNodeDelegate methods.
2016-07-10 11:32:21 -07:00
Hannah Troisi
10447998af [ASMapNode] use ASDisplayNode base class lock (#1879)
* [ASVideoPlayerNode] Use ASDisplayNode base class lock for subclass property syncrhonization, fix retain cycles

* [ASMapNode] Use ASDisplayNode base class lock instead of subclass lock
2016-07-10 00:30:37 -07:00
Scott Goodson
bf9c142765 Revert "[ASTextNode] Fix text node truncation (#1863)"
This reverts commit 6238e5edbd.

We will re-apply this change, but there are some early signs of performance impacts that need to be investigated.
2016-07-09 23:54:43 -07:00
Scott Goodson
d83f319fe3 Revert "Use textStorageCreationBlock for resetting the text storage (#1874)"
This reverts commit d646d3c753.
2016-07-09 23:54:28 -07:00
Hannah Troisi
ff7a586eba [ASVideoPlayerNode] Use ASDisplayNode base class lock for subclass property syncrhonization, fix retain cycles (#1878) 2016-07-09 23:51:49 -07:00
Scott Goodson
1d07759c9e [ASDisplayNode+AsyncDisplay] Add locking for _flags (although write-once-on-init, this quiets the Thread Sanitizer). 2016-07-09 23:50:40 -07:00
Eric Horacek
3efd01a781 [ASCollectionDataController] Repopulate deleted supplementary nodes if necessary (#1773)
* Repopulate deleted supplementary nodes if necessary

Fixes 1771

* Fix warning
2016-07-09 22:46:29 -07:00
Hannah Troisi
f39c2ce7e3 [ASTextNode, ASImageNode, ASVideoNode] Use ASDisplayNode base class lock for subclass property synchronization (#1877)
* [ASTextNode, ASVideoNode] Use ASDisplayNode base class lock for subclass property synchronization

* fix headers to match master

* address @appleguy, @maicki comments

* import header

* Swap lock in ASNetworkImageNode as well

* remove invalid comment

* more cleanup of locks
2016-07-09 22:08:34 -07:00
Flo
131dd25de3 [ASNetworkImageNode] Check that data is not nil before loading the animated image. (#1849) 2016-07-09 21:19:57 -07:00
appleguy
dc12042589 [ASDisplayNode] Do not start measurement for a transition if we have never been provided a constrainedSize. (#1844) 2016-07-09 21:16:29 -07:00
appleguy
3b2af7eb6d [Build] Remove Unused Imports across all of AsyncDisplayKit. This uses a feature of AppCode. (#1875)
Details on the tool are here: https://www.jetbrains.com/help/idea/2016.1/optimizing-imports.html
2016-07-09 17:20:59 -07:00
Michael Schneider
e7e2672472 Move imageLock in braces for getting drawing parameters (#1876) 2016-07-09 17:02:05 -07:00
Michael Schneider
d646d3c753 Use textStorageCreationBlock for resetting the text storage (#1874) 2016-07-09 16:43:18 -07:00
Scott Goodson
48311aee96 [Build] Fix build issue caused by an #import change. 2016-07-09 16:09:35 -07:00
gazreese
01ba38d818 [ASVideoPlayerNode] Ensure activity indicator view is transparent (#1852) 2016-07-09 16:00:48 -07:00
Scott Goodson
f0ff9c108d Merge branch 'master' of git://github.com/kielgillard/AsyncDisplayKit into kielgillard-master 2016-07-09 15:44:31 -07:00
Michael Schneider
6238e5edbd [ASTextNode] Fix text node truncation (#1863)
* Before truncate a text storage in ASTextKitContext reset the text storage to original value

* Fix ASTextNode tests

We should pass in the constrained size in both cases and the sizes should be the same. We adjust the calculated size in ASTextNode to be a bit narrower in the second case if we truncate again with the calculated size as constrained size it will truncate more and the resulting size will shrink.
2016-07-09 15:40:31 -07:00
Adlai Holler
38fab7cd94 Merge pull request #1816 from hannahmbanana/selectionBug
[ASCellNode] Fix selection / highlight implementation
2016-07-08 15:48:22 -07:00
Adlai Holler
0f589d7e2b Merge pull request #1847 from gazreese/ASVideoNode-no-auto-seek
[ASVideoNode] Only seek to beginning when auto repeating
2016-07-08 15:45:17 -07:00
Adlai Holler
a2d4dc5888 Merge pull request #1839 from maicki/MSAsyncMeasure
[ASDisplayNode] Allow measure always be off the main thread
2016-07-08 15:41:05 -07:00
Adlai Holler
09069584cc Merge pull request #1871 from maicki/MSMoveDeallocASImgeNode
[ASImageNode] Move dealloc method from ASImageNode+AnimatedImage category to ASImageNode
2016-07-08 15:20:06 -07:00
ricky
fe61c3e3ab [ASEnvironmentTraitCollection] Fixed bug where containerSize wasn't being saved
Summary:
The old assignment of `self.node.environmentTraitCollection.containerSize = windowSize;` doesn't because the struct creates a copy and then assigns `windowSize` to that copy.

Also realized that we need to create a new `ASEnvironmentTraitCollection` in `willTransitionToTraitCollection:withTransitionCoordinator`:. If we only update in `viewWillTransitionToSize:` we will only update the `containerSize` value in `self.environmentTraitCollection` as we don't have the new trait collection yet.

Differential Revision: https://phabricator.pinadmin.com/D101807
2016-07-08 15:00:50 -07:00
Michael Schneider
b2810edb0f Move dealloc method from ASImageNode+AnimatedImage category to ASImageNode
Having a dealloc method in a category can be very problematic as the superclass dealloc method will not be called in case it exists.
2016-07-08 14:41:47 -07:00
Adlai Holler
ac9549ee89 Merge pull request #1870 from maicki/MSTuningParametersInTableView
[ASTableView] Move setting of tuning parameters to the range controller
2016-07-08 14:38:15 -07:00
Michael Schneider
33e093b1f6 Check if a superview is present before calculating the legacy constrained size 2016-07-08 13:20:18 -07:00
Michael Schneider
057c48482a Fix Modal presented ASViewController don't rotate on iOS 8.3 2016-07-08 13:10:41 -07:00
Adlai Holler
b1626b0f69 Merge pull request #1791 from colinmcardell/ASCollectionDataController_supplementaryNodeOfKind-fix
[ASCollectionDataController] Exposing -supplementaryNodeOfKind
2016-07-08 12:50:32 -07:00
Adlai Holler
b3d673645d Merge pull request #1867 from maicki/MSFixXcode8Errors
Fix Xcode 8 Errors
2016-07-08 12:42:50 -07:00
Michael Schneider
02a41f4db5 Move setting the tuning parameters to the range controller in ASTableView 2016-07-08 11:36:43 -07:00
Adlai Holler
a0aad4609d [ASDataController] Temporarily disable some troublesome assertions 2016-07-08 11:36:43 -07:00
Adlai Holler
82233af5a7 Merge pull request #1860 from rcancro/upstream_remove_context
[ASTraitCollection] Remove traitCollectionContext from ASTraitCollection; add containerWindowSize
2016-07-08 11:18:04 -07:00
Michael Schneider
f25e0f0d01 Fix Xcode 8 errors 2016-07-08 10:51:07 -07:00
Adlai Holler
33620b9e8e Merge pull request #1834 from maicki/MSVisibilityTriggeringViewCreation
[ASVisibility] Don't change the range mode if the node was not loaded yet
2016-07-08 10:32:20 -07:00
Adlai Holler
9154fbbdda Merge pull request #1864 from nguyenhuy/range_controller
[ASRangeController] Minimize number of registrations to node display notifications
2016-07-08 10:15:16 -07:00
Huy Nguyen
312de1a084 Make sure range controller listens to node display notifications if absolutely needed 2016-07-08 12:09:47 +07:00
Adlai Holler
8e1c8acb54 Merge pull request #1861 from facebook/AHCollectionViewLayerRetaining
[ASCollectionView] Add strong Layer Pointer Under iOS < 9 to Workaround Crashes
2016-07-07 18:26:02 -07:00
Adlai Holler
332ab2330a Merge pull request #1858 from maicki/MSFixBlockDeclaration
[ASCollectionView] Add return type to the shouldNotAnimateBlock
2016-07-07 14:42:20 -07:00
Garrett Moon
b79641d4ee Use indexOfObjectIdenticalTo since we only care if the pointers are equal. Thanks @Adlai-Holler! 2016-07-07 11:13:18 -07:00
Garrett Moon
8081123cb2 Fix visibility assert on iOS 7
It appears that didMoveToViewController: can be called with nil,
yet self.parentViewController will *not* be nil. This can result
in calling parent view controller's visibility depth. Instead of
asserting, these methods should return NSNotFound which also happens
to be a really large number, effectively infinite depth.
2016-07-07 11:08:06 -07:00
ricky
ff0e2846e3 fixed formatting 2016-07-07 10:56:58 -07:00
ricky
7314a18ab4 rename containerWindowSize to containerSize 2016-07-07 10:55:18 -07:00
Adlai Holler
54ee62f002 [ASCollectionView] Add a strong pointer from ASCollectionView -> layer under iOS < 9 to workaround issue 2016-07-07 10:36:41 -07:00
ricky
3512cf47aa assert we are on the main thread before accessing view. 2016-07-07 10:21:40 -07:00
ricky
ec4b666bc5 update ASTraitCollection header 2016-07-07 09:59:24 -07:00
ricky
637c4f3a9f [ASTraitCollection] Remove traitCollectionContext from ASTraitCollection; add containerWindowSize
Passing around a pointer was leading to crashes as the ASVC was the sole owner of the context. There are cases where the VC would dealloc while its subnodes were laying out. This could lead to the subnodes accessing a garbage pointer.
2016-07-07 09:23:37 -07:00
Michael Schneider
94ca363936 Add return type to the shouldNotAnimateBlock 2016-07-07 07:00:07 -07:00
Kiel Gillard
6a15ab6130 * Tidy the header imports, forward declaring classes and protocols where appropriate to avoid import cycles and using the framework/system header notation for imports occuring in .h files.
* Perhaps controversially, decomposing ASRangeControllerUpdateRangeProtocol+Beta.h such that the categories on various classes are defined in the classes themselves since that's where the implementation of those categories is provided.
* Updating unit tests and import other headers the tests took for granted. The tests could probably import the umbrella header and not have to worry about this.
* Updating the "Life without Cocoapods" sample to build and run dependent on ASDK as a static library.
* Added a "Life With Frameworks" sample app to build and run dependent on ASDK as a framework, proving the framework targets work.
2016-07-07 15:12:19 +10:00
Adlai Holler
c62a4d3e79 [ASCollectionView] Greatly Improve Cell Node Resizing (#1853)
* [ASCollectionView] Initial pass at reducing double-sided animations

* [ASCollectionView] Always suppress animation during node size requery

* [ASCollectionView] Rejigger the invalidation logic to support animated size changes

* [ASCollectionView] Remove unused header

* [ASCollectionView] Change comment

* [ASDataController] Remove unused variable

* [ASCollectionView] When relayout animated due to cell size change, wait until next layout pass

* [ASCollectionView] Invalidate layout synchronously

* [ASCollectionView] Only read the layout object once

* [ASCollectionView] When size changes, wait for requery before layout

* [ASCollectionView] Sort of go back to using an empty update to handle node resizing

* [ASCollectionView] Remove unused constant

* [ASCollectionView] Address PR comments

* [ASCollectionView] Prevent nested [super performBatchUpdates:] calls
2016-07-06 14:13:52 -07:00
Kiel Gillard
f7b7bcebeb * Make the "Life Without Cocoapods" sample build and run.
* Properly reference headers within implementation files to avoid import cycles and redeclaration warnings.
2016-07-06 16:58:13 +10:00