Commit Graph

625 Commits

Author SHA1 Message Date
Adlai Holler
1777dae300 [ASDataController] Set context variable value 2016-07-18 18:41:51 -07:00
Adlai Holler
46a911ecf4 [ASDataController] Clean up by using a dispatch_group 2016-07-18 15:01:22 -07:00
Adlai Holler
fa34888d98 [ASDataController] Migrate to GCD queue to make debugging easier 2016-07-18 12:15:27 -07:00
appleguy
74bf376b2f [ASDisplayNode] Rename _propertyLock to __instanceLock__ to avoid subclass naming collisions. (#1941) 2016-07-16 15:32:13 -07:00
Hannah Troisi
4baf9bdbfe [Infer] Fix Infer errors/warnings (#1938)
* [Infer] Fix 11 Infer errors/warnings

* fix build error
2016-07-16 15:29:24 -07:00
Hannah Troisi
abf8d5b9aa [Infer] change atomic properties to nonatomic (#1932) 2016-07-16 10:46:55 -07:00
Adlai Holler
dda7accd8e [ASCollectionView] When resizing, invalidate after remeasuring all nodes (#1931) 2016-07-15 16:32:23 -07:00
Michael Schneider
20a49f037b Comment adjustment for laying out nodes 2016-07-15 11:41:10 -07:00
Adlai Holler
cc8e0049c5 Merge pull request #1921 from facebook/AHRangeModeUpdatingIssues
[ASRangeController] Fix Major Range Mode Updating Issues
2016-07-15 10:22:36 -07:00
Adlai Holler
e7fc5a98f2 Merge pull request #1906 from facebook/AHReduceBlockInvocations
[Performance] Various Easy Performance Wins
2016-07-15 10:14:22 -07:00
Michael Schneider
a8c5ac138d [ASDisplayNode] Always layout nodes on a background thread (#1907)
* Always layout nodes on a background thread

* Remove semaphore in ASDataController for allocating nodes and layout

* Fix variable not used error

* Remove overhead to create subarray of contexts of nodes while layout nodes

* Remove extra allocation of allocatedNodes and indexPaths array
2016-07-14 21:35:58 -07:00
Garrett Moon
aaea4a4d85 Class was in wrong #ifdef, thank you @schneider! 2016-07-14 14:57:40 -07:00
Garrett Moon
92e16fb7a6 Share ASDK's PINRemoteImage cache with default instance of PINRemoteImage 2016-07-14 14:57:35 -07:00
Adlai Holler
bd0254f306 [ASRangeControllerUpdateRangeProtocol] BREAKING Remove +setRangeModeForMemoryWarnings:, replace with global method 2016-07-14 11:26:18 -07:00
Michael Schneider
8b3ec83bfd Small name changes 2016-07-13 16:36:48 -07:00
Michael Schneider
d82a2e810f Move methods regarding supplementary nodes to optional in ASCollectionViewLayoutInspecting 2016-07-13 16:36:48 -07:00
Michael Schneider
30bb2ee93d Address comments from @levi 2016-07-13 16:36:48 -07:00
Michael Schneider
9fb3129a0e Add default ASCollectionViewLayoutInspecting for custom ASCollectionViewLayout 2016-07-13 16:36:48 -07:00
Michael Schneider
35c860c183 Refactor usage of ASCollectionViewLayoutInspecting
- Fix not using itemSize of UICollectionViewFlowLayout
- Move automatic constrained size calculation to the ASCollectionViewFlowLayoutInspector
- Provide a null layout inspector for throwing exceptions if a custom
  UICollectionView is given but no ASCollectionViewLayoutInspecting
- Fix not checking for optional layout inspecting data source methods
  are implemented or not
- Improving tests around ASCollectionViewLayoutInspecting
2016-07-13 16:36:48 -07:00
Adlai Holler
8eb25e737b [ASCollectionDataController] Use block-based enumeration with dictionaries 2016-07-12 15:17:57 -07:00
Adlai Holler
6aad142f2e [ASCollectionDataController] Some optimizations 2016-07-12 15:11:13 -07:00
Adlai Holler
2e19d11350 Reduce block invocations, other small performance bumps 2016-07-12 15:11:13 -07:00
Adlai Holler
edb4e45c24 [ASRangeController] Update synchronously when possible 2016-07-12 14:36:20 -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
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
Scott Goodson
f0ff9c108d Merge branch 'master' of git://github.com/kielgillard/AsyncDisplayKit into kielgillard-master 2016-07-09 15:44:31 -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
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
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
Huy Nguyen
312de1a084 Make sure range controller listens to node display notifications if absolutely needed 2016-07-08 12:09:47 +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
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
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
Michael Schneider
52a34db884 Add pending state for range mode in ASTableNode and ASCollectionNode 2016-07-02 10:27:52 -07:00
Michael Schneider
9be2f1db4e Prevent calling endUpdatesAnimated:completion: in an unbalanced way 2016-07-02 10:17:09 -07:00
Scott Goodson
d2d8b0a1cb [ASDisplayNode] Adjust behavior of -removeFromSupernode to ensure "root" nodes are removed from their superview/superlayer.
This situation is relatively uncommon.  If a user manually uses -[UIView addSubnode:], the convenience category method,
and then calls -[ASDisplayNode removeFromSuperview] -- we would bypass performing the actual removal as no supernode pointer
is set.  After further consideration, the special handling here to support divergence between the supernode pointer and
the view / layer hierarchy is not something we need to maintain going forward, and removing it makes addressing this easy.
2016-07-01 20:11:23 -07:00
Adlai Holler
ebaa2c157e Remove aggregate CGRect initializers in ASDataController 2016-07-01 11:47:05 -07:00
Michael Schneider
8804342a98 Don't propagate trait collections to cells if the node is not loaded yet (#1833)
This fixes an issue where the propagation of trait collections trigger are creation of the node if the node view was not loaded yet.
2016-06-30 19:44:40 -07:00
Michael Schneider
f0e96cc808 Change @import to #import 2016-06-30 07:18:30 -07:00
Adlai Holler
284160b07b Merge pull request #1821 from maicki/MSAddConformsToProtocolToProxy
[ASDelegateProxy] Add `conformsToProtocol:`
2016-06-29 09:18:14 -07:00
Colin McArdell and Robin Chou
488ded2fe8 ASCollectionDataControllers supplementaryNodeOfKind:atIndexPath: now returns nil instead of an assertion if the supplementary node of kind doesn't exist within completedNodesOfKind 2016-06-27 11:05:37 -04:00
Michael Schneider
4091d70003 Add conformsToProtocol: to ASDelegateProxy 2016-06-27 06:38:42 -07:00
Adlai Holler
0a354f8f4e [ASDataController] Remove implementation for unused hooks 2016-06-24 15:48:23 -07:00
Adlai Holler
0a525a3c16 [ASFlowLayoutController] Fix enumeration bug in ASFlowLayoutController 2016-06-24 13:52:16 -07:00
Adlai Holler
84e8b2686c [ASDataController] Combine isolated reloads into a batch 2016-06-24 13:03:51 -07:00
Adlai Holler
d8d2524b89 One more critical update integrity fix 2016-06-24 11:12:37 -07:00