Commit Graph
4622 Commits
Author SHA1 Message Date
appleguy f91265757e [Yoga] Initial commit for supporting Yoga-powered layout calculation. (#2982)
* [Yoga + AsyncDisplayKit] Initial commit for supporting Yoga-powered layout calculation.

Because this results in ASLayout objects, it preserve support for automaticallyManagesSubnodes
as well as the animated transition system. More work remains to vet performance of the new mode,
and it will remain in +Beta for the forseeable future.

I'm not sure that this should ever be used as the primary ASDK layout system, but it should remain an
option for some apps to experiment with if they require an implementation that more strictly mirrors
W3C standard Flexbox.

* [Yoga] Improve usage of ASHierarchyState to ensure simultaneous yoga layouts can't happen.

* [Yoga] Strictly minimize the impact of the Yoga integration on existing code.

Created new file ASDisplayNode+Yoga.mm, reduced size and number of integration points in core code.

* [Yoga] Figured out how to further reduce ASDisplayNode.mm impact by allocating _yogaNode in property accessor, and changing all accesses to use the property.
2017-02-09 16:10:29 -08:00
Adlai Holler 5c8818d107 Route setDelegate: to setAsyncDelegate: (#3007)
* Make ASTableView/ASCollectionView delegate/dataSource unavailable, route setDelegate: to setAsyncDelegate:

* Remove deprecated method from example

* Drop down from unavailable to deprecated
2017-02-09 15:20:26 -08:00
Adlai Holler e338098e4f Have ASVideoNode override its superclass's designated initializer (#3009) 2017-02-09 14:59:37 -08:00
appleguy 1ec69221e3 [UIImage+ASConvenience] Reorder header and add more documentation. (#3004)
Order the methods so the most valuable one, as_imageNamed, is more immediately noticeable.
Also added a block comment describing its purpose and usage suggestions.
Separated @implementation for fairly unrelated methods by categories.
2017-02-09 13:52:36 -08:00
Garrett Moon 6d9f12c7e9 [ASNetworkImageNode] Assert if both URL and image are set (#2782)
* [ASNetworkImageNode] Assert if both URL and image are set

Here's one other idea for addressing this problem. Essentially,
we assert if you've set both the URL and the image. I've played around
with Pinterest and there's only one case where we hit this (the transition).

So I've also added another method (which is a bummer, it's weird I know)
but there's one good reason to add this method, ephemeralImage, which is
the user doesn't have to manually clear it out like they would if they
used defaultImage to save memory.

Putting this up for discussion.

* Fix comment

* Oh yeah, @dynamic, thanks @adlai

* Remove ephemeralImage
2017-02-09 13:23:44 -08:00
Adlai Holler 0bda7ee230 Repeal and replace ASControlState (#3005) 2017-02-09 13:10:10 -08:00
Adlai Holler a13b36d63f Allow UICollectionViewLayout to Provide Layout Inspector, Always Update Delegate (#3003)
* Allow UICollectionViewLayout to give us a layout inspector, always call the didChangeDelegate/didChangeDataSource on binding

* Make an assertion

* Update the tests

* Tests use actual layout inspector

* Be more consistent
2017-02-08 22:03:13 -08:00
Scott Goodson 1adfb005ca [Build] Tiny fix to cast intValue to the enume type we're using it as (strict compiler settings can fail without the cast). 2017-02-08 20:30:28 -08:00
appleguy ca8fcdfe49 [ASScrollNode] Add .scrollDirection property so that internal content sizing can be easily "unlimited" in the direction of scrolling. (#3001) 2017-02-08 16:39:05 -08:00
Adlai Holler ada553c5a7 Avoid Measuring Cell Nodes with Empty Size Range (#3000)
* Always avoid measuring cell nodes with empty bounds

* Be lenient

* Add required assertion comment

* Avoid importing non-modular header publicly
2017-02-08 13:58:22 -08:00
Rocir Santiago b33cced1eb [ASDisplayNode] Add support for setting non-fatal error block (#2993)
* Add support for setting non-fatal error block

* Better documentation and fix typos

* Added ASDisplayNodeAssertNonFatal macro that asserts in dev and call block in prod

* Make non fatal error code equals to 1

* Add support for condition in ASDisplayNodeAssertNonFatal

* Only call non fatal block if condition isn’t satisfied
2017-02-07 17:13:33 -08:00
Michael Schneider f21254593d [Layout] Add extensibility support to ASLayoutElementStyle (#2975)
* Add extensibility support to ASLayoutElementStyle

* Fix some typo
2017-02-07 10:34:09 -08:00
Michael Schneider d2da941960 Fix some static analyzer warnings (#2999) 2017-02-07 10:33:34 -08:00
Michael Schneider 7e4bf953b1 Move debugName into it’s own protocol out of the ASLayoutElement protocol (#2994) 2017-02-06 20:02:21 -08:00
Michael Schneider aedac5c299 Remove legacy parent pointer of ASLayoutSpec (#2987) 2017-02-06 20:01:37 -08:00
Adlai Holler abd9851ddd Restore IGListKit Build & Function (#2988) 2017-02-06 20:00:22 -08:00
Michael Schneider 42b53c9331 [ASLayoutTransition] Remove taking a snapshot in the default layout transition code (#2940)
* Remove taking a snapshot in the default default layout transition code

* Set groupOpacity for root node of animation to true before and restore after animation finished
2017-02-06 15:29:37 -08:00
Adlai Holler e4c9878de7 Fix the CI (#2992) 2017-02-06 14:45:07 -08:00
Garrett Moon 4e8a2640db Fix a warning preventing pod spec validation. (#2989)
* Fix a warning preventing pod spec validation.

* Add comment, thanks @adlai.
2017-02-06 13:06:52 -08:00
Scott Goodson 9b77f77656 [Build] Fix typo in capitalization of import, which causes build failure on case-sensitive filesystems. 2017-02-05 19:39:44 -08:00
Adlai Holler 86b669dc38 Improve TableLayoutController: Simplify, Fix Crash & Improve Perf (#2969)
* Refactor FlowLayoutController -> TableLayoutController

* Use most conservative row index path
2017-02-05 18:24:15 -08:00
Scott Goodson f71eba77af [ASCollectionView] Finish support for interoperability with base-class UICollectionViewCells.
This also supports supplementary nodes. It builds off of Adlai's .interop flag but makes necessary
improvements for all of the delegate methods to work in practice with heterogenous cell types.
2017-02-04 20:40:44 -08:00
Alex Hüllmandel e2e797be6e Add screenshots to documentation (#2968)
* Added missing screenshots/gifs from /examples

* Updated readme for examples

* Changed screenshot size to have equal width for all screenshots
2017-02-04 18:04:23 -08:00
Scott Goodson 1fa6be357a [Build] Finally, it appears necessary to manually specify that the pch needs to be built at the start. 2017-02-04 17:14:42 -08:00
Scott Goodson 1e10550951 [Build] Configure Xcode project to reference Precompiled Header. The .podspec changes aren't enough by themselves. 2017-02-04 16:46:37 -08:00
Scott Goodson b03a9b68dd [Build] Restore operational AsyncDisplayKit-Prefix.pch
This was regressed by the large project file changes in 404795dc02

I don't yet have full context on the goals of that change, but it's definitely necessary to have the .pch
with the current requirements of the project. This line ensures that Cocoapods adds it.
2017-02-04 16:38:55 -08:00
Michael Schneider 12e4e5b048 [Layout] Improve Layout System Abstraction (#2941)
* Improve Layout Abstraction

* Address naming comments

- Rename ASPrimitiveTraitEnvironment to ASTraitEnvironment
- Rename ASPrimitiveTraitCollectionPropagateDown to ASTraitCollectionPropagateDown
- Rename progagateNewPrimitiveTraitCollection: to propagateNewTraitCollection:
2017-02-03 13:04:20 -08:00
Adlai Holler a2ff2b9900 Force ASPagerNode pages to be bounds-sized (#2973) 2017-02-03 10:29:15 -08:00
Adlai Holler bf2363cb8f [ASDKgram] Perform batch-fetching updates on main (#2972) 2017-02-02 14:03:40 -08:00
Michael Schneider d42dcfefc1 [ASNodeController] Move ASNodeController to beta header (#2966)
* Move ASNodeController to beta header

* Make it public

* Change ASNodeController+Beta to .mm
2017-02-02 12:51:33 -08:00
Adlai Holler 404795dc02 Remove Support for iOS 7 (#2930)
* Drop support for iOS 7

* Copy reference images

* Update deployment for sample projects

* Update version

* Update "Life Without Cocoapods"
2017-02-01 14:40:37 -08:00
Garrett Moon 0be685982b Merge pull request #2967 from facebook/bumpTo2dot1
Bump podspec to 2.1
2017-02-01 13:42:26 -08:00
ricky 39298f6694 [ASIndexedNodeContext] Do not cache the envTraitCollection, use the delegate to request it when needed (#2963)
Caching the envTraitCollection upon creation of `ASIndexedNodeContext` can lead to it becoming out of date. Ask the `id<ASEnvironment>` object for the trait collection when we need it.
2017-02-01 13:38:52 -08:00
Garrett Moon c396e4db68 Bump podspec to 2.1 2017-02-01 13:30:43 -08:00
Adlai Holler d7670780b2 Fix Deleting Sections Issue (#2962)
* Add data source to main project

* Remove the idea of deletingSectionsOfKind – always delete all kinds

* Move comment into assertion
2017-01-31 15:39:10 -08:00
Hannah Troisi 7f7f28385d [ASNodeController] First implementation of node controller class (#2945)
* [ASNodeController] initial commit for node controller class

* create <ASInterfaceState> protocol, -[ASDisplayNode interfaceDelegate], and use these to forward to ASNodeController

* rename ASInterfaceStateDelegate, fix setting in it ASNodeController.mm
2017-01-31 14:27:02 -08:00
Huy Nguyen b3663476e6 Disable background deallocation on iOS 8 and below (#2954)
- The crash mainly occurs on these old iOS versions (~93%) and p6.16.1. There might be a client code issue that causes this crash, but it's hard to tell if it also crashes on newer iOS versions AND p6.17.
- Let's disable this feature for now and re-investigate if it resurfaces on p6.19 and iOS 9/10.
2017-01-31 08:15:28 -08:00
Adlai Holler 38aac9d019 IGListKit Support II: Electric Boogaloo (#2942)
* Reimplement IGListKit support in a cleaner way

* Rename and fix some stuff

* Fix supplementaries more

* Update docs

* Update test

* Cleanup minor things

* Tweak it

* Indentation

* Remove irrelevant changes

* Break out cell into its own file

* Fix indentation

* Address feedback
2017-01-30 11:16:59 -08:00
Hannah Troisi 34338cadeb [Examples] Rename node variables for clarity (#2946) 2017-01-29 10:36:34 -08:00
Adlai Holler 295ed22c23 Improve Our Handling of Flow Layout Headers/Footers (#2939)
* Rejigger our flow layout supplementary support to make more sense.

* Support old protocol

* Update

* Update deprecation message

* Undeprecate insetForSection method, because it actually _does_ still work

* Update the tests

* Remove irrelevant junk

* Remove cast, add pragma
2017-01-27 15:58:43 -08:00
Hannah Troisi 7d68ce33bb add the enum direct comments back (#2936) 2017-01-26 16:39:54 -08:00
Michael Schneider e143942d22 [ASDisplayNode] Overall code cleanup and restructuring (#2931)
* First round of ASDisplayNode cleanup: Move together sections that are related

* Cleanup hierarchy and interface state
2017-01-25 16:41:42 -08:00
Hannah Troisi f01bf9d178 fix pagerNode to automatically scale to bounds size when rotated (#2933) 2017-01-25 16:29:25 -08:00
Adlai Holler c0950e0f8e Fix test failure caused by collection views lingering (#2935) 2017-01-25 14:24:36 -08:00
Adlai Holler 79f3aa5f3b Disable flaky test (#2934) 2017-01-25 13:20:33 -08:00
appleguy b8872c24db [AsyncDisplayKit] Fix a few comment typos and minor compiler strictness warnings. (#2932) 2017-01-25 12:53:13 -08:00
Huy Nguyen 38f1efd448 [ASDataController] Simplify data controller (#2923)
* Start removing ASChangeSetDataController

* Continue removing ASChangeSetDataController

* Remove unnecessary change

* ASDataController is no longer an abstract class, remove its assertion

* Get back beginUpdates and endUpdatesAnimated:completion in ASCollectionNode
2017-01-24 17:41:19 -08:00
Adlai Holler 70c48ba906 Link AssetsLibrary weakly (#2929) 2017-01-24 17:09:24 -08:00
Michael Schneider d9be4783e5 [ASLayout] General Layout Cleanup (#2920)
* Remove duplicate import

* Move `ASLayoutController` related code out of CoreGraphics+ASConvenience

* Further cleanup

* Move private layout files to Privat/Layout

* Move ASLayoutElementStylePrivate into Private/Layout

* Further cleanup

* Move tvOS related files to tvOS folder

* Further cleanup
2017-01-24 11:54:05 -08:00
Michael Schneider 9a5f6d3ece Consider the deduce compiler flag for duplicate elements in a subtree (#2922) 2017-01-23 17:03:54 -08:00