Commit Graph

638 Commits

Author SHA1 Message Date
Michael Schneider
c90ed08d10 [ASLayoutSpec] Use childrenMap directly to prevent creating an NSArray within ASDK (#1937)
* Use childrenMap directly to prevent creating an NSArray in ASDK for ASLayoutSpec children

* Add locking for parent property in ASLayoutSpec

* Remove unnecessary import

* Add newline

* Add NSFastEnumeration to ASEnvironment and ASDisplayNode / ASLayoutSpec

* Change NSMutableArray initializer to arrayWithCapacity:

* Move ASLayoutSpec+Private.h into Private folder

Fixes building with Swift

* Remove lock for ASLayoutSpec parent
2016-07-29 10:53:31 -07:00
Hannah Troisi
79e44207e8 Merge pull request #1993 from Yue-Wang-Google/patch-2
[ASRangeController] Fix import misspelling
2016-07-28 15:15:54 -07:00
Yue-Wang-Google
93a5c36a39 Fixed typo in ASCollectionViewFlowLayoutInspector.m pertaining to supplementary node layout. (#1996)
Patch from iOS teams at Google Inc.
2016-07-28 10:13:49 -07:00
ricky
f0b1f12160 [ASEnvironmentTraitCollection] default user interface idiom to UIUserInterfaceIdiomUnspecified (#1998)
* [ASEnvironmentTraitCollection] default user interface idiom to ASEnvironmentTraitCollection

UIUserInterfaceIdiomUnspecified is -1 so we were actually defaulting our trait collection to UIUserInterfaceIdiomPhone (which is 0).

* Fix a few places where we weren’t using the default method to create the base traits
2016-07-28 10:03:32 -07:00
Yue-Wang-Google
b59e368b71 [PATCH] Fix capitalizations in imports. 2016-07-27 14:17:56 -07:00
Hannah Troisi
f5b3a282af Fix Pinterest Xcode 7.3.1 Analyzer Warnings (#1988) 2016-07-27 08:23:16 -07:00
Adlai Holler
aeec0b1a14 [ASChangeSetDataController] Enable some assertions (#1984) 2016-07-25 17:28:24 -07:00
Alice Chang
2bf1b56f55 fixed potential ASPINRemoteImageDownloader crash (#1972) 2016-07-24 16:01:15 -07:00
Tim Johnsen
a6e03e8d93 Fix issue causing ASPINRemoteImageDownloader to return incorrect progress values. (#1966) 2016-07-23 20:09:58 -07:00
Adlai Holler
7ec6f07953 [General] Remove dead code, check optional protocol selector before calling (#1970) 2016-07-22 13:09:28 -07:00
Adlai Holler
3bfa60c445 Move ASDataController+Subclasses.h to fix Swift build 2016-07-21 15:52:24 -07:00
Michael Schneider
9b47a9114a Fix compiler warning in as_smallDescription on 32 bit (#1964) 2016-07-21 14:52:21 -07:00
Adlai Holler
8cde594de3 [ASDataController] Add validation logic to the change set to throw exceptions on invalid updates (#1894)
[_ASHierarchyChangeSet] Oopsy daisy

[ASDataController] Tweak our update validation

[ASHierarchyChangeSet] Fix bugs

Finish up some stuff

[ASDataController] Put some stuff back

[ASChangeSetDataController] Always use changeset

[ASDataController] Put other stuff back

[_ASHierarchyChangeSet] Use fast enumeration

[_ASHierarchyChangeSet] Fix assertion format strings, return on fail so we don't crash in production

[ASDataController] Store data source item counts as vector rather than NSArray

[ASDataController] Build some tests for the update validation

[ASDataController] Fix issues with update validation

Get rid of new file

[ASDataController] Suppress changeset validation before initial reload

[ASDataController] Make invalid update log vs. exception publicly toggleable
2016-07-21 14:37:51 -07:00
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