As of today, ASRangeController doesn't manage the interfaceState for supplementary nodes. This bug was introduced with a refactoring of this code a couple months ago.
With this change, the supplementary nodes will automatically enter each interfaceState bit when they are added to a view hierarchy.
* Split up table view thrash tests
* Fix license
* Fix license
* Reenable thrash tests for table view
* Creating the collection view thrash tests
* Batch update animated tests
* Thrash wildly dispatch main
* Reset the thrash count
* One more test
* Lint
* Update Tests/ASThrashUtility.h
Co-Authored-By: mikezucc <mikezuccarino@gmail.com>
* Tiny code style change in ASCollectionViewThrashTests.mm
* Set automaticallyAdjustsContentOffset when view is load
* [ASTableNode] Update test: set automaticallyAdjustsContentOffset before view is load (#1278)
* Wrap supplementary node blocks to enable resizing them.
Most ASCellNodeBlocks are wrapped by ASCollectionView.mm to add an `interactionDelegate` as well as calling `enterHierarchyState` on the node and setting its transform to a reflection if `inverted` is set on the collectionView.
This PR adds this behavior to supplementary nodes as well.
* Simplify code / block will never be nil
If PIN_ANIMATED is enabled, the creation of a PINRemoteImageManager
will create a sharedDownloader also. Thus we cannot assert that it
doesn't exist. We will move this assertion up to the methods that
create the preconfiguredSharedManager and before said manager is
allocated.
* Introduce ASCellLayoutMode
* Some smaller improvements
* Improve logic around _superPerformBatchUpdates:completion:
* Add comment about default values for ASCellLayoutModeNone
* Always call _superReloadData:completion: within UICollectionView
* Add initial range test for ASCellLayoutModeNone
With the changes to `ASPrimitiveTraitCollection` in https://github.com/TextureGroup/Texture/commit/e392f832f42897da41a7c0106709b55427efcea4 a new `ASPrimitiveTraitCollectionMakeDefault` was created. The new method didn’t give all values in an `ASPrimitiveTraitCollection` a default value (or initialize the struct with `{}`). This was causing fields like `userInterfaceIdiom`, `forceTouchCapability`, and `displayScale` to be filled with garbage, leading to `ASPrimitiveTraitCollectionIsEqualToASPrimitiveTraitCollection` to return `YES` when the trait collection hadn’t really changed.
It also looks like the getter `containerSize` was not implemented.
After 5c9815f, some Mutexes are used as global C++ variables which are loaded before main(). Since the Mutex constructor checks for unfair lock experiment, it triggers an experiment configuration load, and our app isn't ready to respond that early in the process.
https://github.com/TextureGroup/Texture/pull/886 enforces that some nodes are loaded before they are sent a visiblity event, but it was not propagating the trait collection before forcing the load.
We are propagating traits in `_setSupernode:` (which was happening after the forced load). I moved the possible forced load to `_setSupernode:`, after propagating traits but before any visibility states are changed.
* Fix A11Y for horizontal collection nodes in Texture.
Collections have their own handling in UIKit that we shouldn't mess with. As such no nodes that contain CollectionNodes should ever be treated as AccessibilityContainers.
* Update braces