* fix SIMULATE_WEB_RESPONSE not imported #449
* Fix to make rangeMode update in right time
* remove uncessary assert
* Fix collection cell editing bug for iOS 9 & 10
* Rename to reordering.
* Adjust _reordering more acuratedly
* Add change log
* fix SIMULATE_WEB_RESPONSE not imported #449
* Fix to make rangeMode update in right time
* remove uncessary assert
* Allow to add interface state delegate in background threads.
* Allow to add interface state delegate in background threads.
* lock around _interfaceStateDelegates
* lock _interfaceStateDelegates to local variable
* Fix comments
* remove extra spaces
* [License] Simplify the Texture license to be pure Apache 2 (removing ASDK-Licenses)
With permission of the Facebook Open Source team, we are simplifying the Texture
license so that clients can rely on the Apache 2 terms that most of Texture is
already covered by. This means that code originally forked from AsyncDisplayKit
will be re-licensed from "BSD 3-clause + PATENTS v2" to Apache 2 without a
PATENTS file.
After getting confirmation that the updates to these core files look good, we'll
propagate this new license header to all files (in this same PR) and get sign-off
from all parties before landing.
* [License] Update all Texture source files to be pure Apache 2.
* Changelog entry for Apache 2 license update.
* Revert "[License] Update all Texture source files to be pure Apache 2."
This reverts commit ffa0fbbba9717d871dd16c4b07539f2f8208fc2b.
* [License] Update all Texture source files to be pure Apache 2, maintaining copyrights.
* [License] Update CONTRIBUTING, README, Podspec & Dangerfile.
* Refactored `accessibleElements` to `accessibilityElements`, and removed the re-definition of the property.
With this refactor, the field can now be used as a single access point into the accessibility elements of a view. Also, removing the re-definition of the property in _ASDisplayViewAccessibility.h enables us to make use of the field and its associated helper methods directly from the `UIAccessibilityContainer` API rather than rolling our own implementation.
* Added tests for the accessors to ASDisplayView.accessibilityElements.
* Commented out tests for older a11y accessors & added relevant warnings.
Also added assertions that the getter and setter for the accessibilityElements
property are used only on the main thread.
* Remove copying in text stack, make text container have an optional immutable mode
* Changelog
* Comment
* Update CHANGELOG.md
* Use new name
* Import header
* Add an experimental framesetter cache in ASTextNode2, and stop keeping framesetters around
* Update configuration schema
* Fix imports
* Fix import again and remove set statement
* Remove objc association & weak proxy from node -> controller relationship
* Rename ASNodeController+Beta.m to ASNodeControllerx+Beta.mm
Currently we can't import ASDisplayNodeInternal from C
* Update project pointers
* Rename ASNodeControllerx+Beta.mm to ASNodeController+Beta.mm
* fix SIMULATE_WEB_RESPONSE not imported #449
* Fix to make rangeMode update in right time
* remove uncessary assert
* add api to allow delegated calls in background.
* fix typo
* 1. Add class property to decide whether to send delegate callbacks on
main or background.
2. remove non-info api.
* Refactor.
* add ivar for class property.
* Donot use extra api.
* Refactor
* refactor
* revert to use let
* refactor
* make class property atomic.
* kick of new ci test.
* kick off new ci
Doing so may trigger `-layer:didChangeBoundsWithOldValue:newValue:` on the layer's delegate (i.e `ASCALayerExtendedDelegate`) which then runs other operations that require the lock to be free.
- Rename `ASDisplayNodeAssertLockUnownedByCurrentThread` to `ASAssertUnlocked`, and `ASDisplayNodeAssertLockOwnedByCurrentThread` to `ASAssertLocked` -> shorter and hopefully easier to distinguish between the two.
- Add assertions to `_locked_` and `_u_` (i.e "unlocked") methods.
- Turn `CHECK_LOCKING_SAFETY` flag on by default. After #1022 and #1023, we're in a good shape to actually enforce locked/unlocked requirements of internal methods. Our test suite passed, and we'll test more at Pinterest after the sync this week.
- Fix ASVideoNode to avoid calling `play` while holding the lock. That method inserts a subnode and must be called lock free.
- Simplify `_loaded(node)` to only nil-check `_layer` because regardless of whether the node is view or layer backed, the layer should always be set if loaded. Use it throughout.
- Other minor changes.
* Add move detection and support to ASLayoutTransition
...and NSArray+Diffing.
Add some tests.
* Update CHANGELOG.md
* Update CHANGELOG.md
* Update ASLayout+IGListKit.h
* Update ASLayout+IGListKit.mm
* Use std collections to avoid NSNumber boxing
* Update ASLayoutTransition.mm
* Code review updates.
* Use `unordered_multimap` on stack instead of unordered_map<id,queue> on heap
* Remove notFound BOOL (use NSNotFound sentinel value) and put some vars inside the if (insertions/moves) loop
* Don't copy defaultCompare block (redundant under ARC)
* Whitespace
* Remove unneeded mutableCopy-s in ArrayDiffingTests
* Code review updates.
* Type _subnodeMoves pair.first to ASDisplayNode * instead of id
* C++ enumeration
* unowned refs for adding previousLayout nodes to _subnodeMoves
* Remove unreleated ASDynamicCast that is probably right though
* Add commentary to NSArray+Diffing.h; make multimap elements unowned
* Use std::make_pair, optimize ASLayout+IGListKit
* Oops I thought I had added these headers but nope
* Simplify simplify
* Diff subnodes instead of sublayouts
* Another randomized test with actual ASLayouts
This is because committing the layout transition (aka `-_completeLayoutTransition:`) results in subnode insertions and removals which must be called lock-free.
- Currently, there is a pair of mutex unlock and unlock that wraps around `-_u_measureNodeWithBoundsIfNecessary:` in `__layout`. That is because this method must be called without the lock.
- When an assertion occurs within that method, the runtime bails early without reacquire the lock (so the lock is free now). However, the runtime then hits the end of the outmost mutex locker scope and tries to release the lock that it no longer holds, causing another assertion in ASThread to be shown to user (#932). This makes it extremely hard to idenfity the root assertion.
- Fix by replacing the unlock/lock pair with a mutex unlocker.
* Adds support for having multiple interface state delegates.
Hopefully in a performant way.
* Switch to respondsToSelector for int del instead of separate object
* Add CHANGELOG
* Make ASDisplayNode+InterfaceState.h public
* Huy's comments
* Don't even bother removing since it's a weak hash table.