mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-13 09:50:17 +00:00
Merge remote-tracking branch 'facebook/master' into ASVideoPlayerNode
# Conflicts: # AsyncDisplayKit.xcodeproj/project.pbxproj
This commit is contained in:
commit
4f40f3c12f
@ -563,8 +563,8 @@
|
|||||||
DBDB83971C6E879900D0098C /* ASPagerFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = DBDB83931C6E879900D0098C /* ASPagerFlowLayout.m */; };
|
DBDB83971C6E879900D0098C /* ASPagerFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = DBDB83931C6E879900D0098C /* ASPagerFlowLayout.m */; };
|
||||||
DE040EF91C2B40AC004692FF /* ASCollectionViewFlowLayoutInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 251B8EF41BBB3D690087C538 /* ASCollectionViewFlowLayoutInspector.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
DE040EF91C2B40AC004692FF /* ASCollectionViewFlowLayoutInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 251B8EF41BBB3D690087C538 /* ASCollectionViewFlowLayoutInspector.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
DE0702FC1C3671E900D7DE62 /* libAsyncDisplayKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058D09AC195D04C000B7D73C /* libAsyncDisplayKit.a */; };
|
DE0702FC1C3671E900D7DE62 /* libAsyncDisplayKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058D09AC195D04C000B7D73C /* libAsyncDisplayKit.a */; };
|
||||||
DE4843DB1C93EAB100A1F33B /* ASDisplayNodeLayoutContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = E52405B21C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm */; };
|
DE4843DB1C93EAB100A1F33B /* ASLayoutTransition.mm in Sources */ = {isa = PBXBuildFile; fileRef = E52405B21C8FEF03004DC8E7 /* ASLayoutTransition.mm */; };
|
||||||
DE4843DC1C93EAC100A1F33B /* ASDisplayNodeLayoutContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h */; };
|
DE4843DC1C93EAC100A1F33B /* ASLayoutTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */; };
|
||||||
DE6EA3221C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; };
|
DE6EA3221C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; };
|
||||||
DE6EA3231C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; };
|
DE6EA3231C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; };
|
||||||
DE84918D1C8FFF2B003D89E9 /* ASRunLoopQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 81EE384D1C8E94F000456208 /* ASRunLoopQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
DE84918D1C8FFF2B003D89E9 /* ASRunLoopQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 81EE384D1C8E94F000456208 /* ASRunLoopQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@ -582,8 +582,8 @@
|
|||||||
DECBD6E91BE56E1900CF4905 /* ASButtonNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */; };
|
DECBD6E91BE56E1900CF4905 /* ASButtonNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */; };
|
||||||
DECBD6EA1BE56E1900CF4905 /* ASButtonNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */; };
|
DECBD6EA1BE56E1900CF4905 /* ASButtonNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */; };
|
||||||
DEFAD8131CC48914000527C4 /* ASVideoNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = AEEC47E01C20C2DD00EC1693 /* ASVideoNode.mm */; };
|
DEFAD8131CC48914000527C4 /* ASVideoNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = AEEC47E01C20C2DD00EC1693 /* ASVideoNode.mm */; };
|
||||||
E52405B31C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = E52405B21C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm */; };
|
E52405B31C8FEF03004DC8E7 /* ASLayoutTransition.mm in Sources */ = {isa = PBXBuildFile; fileRef = E52405B21C8FEF03004DC8E7 /* ASLayoutTransition.mm */; };
|
||||||
E52405B51C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h */; };
|
E52405B51C8FEF16004DC8E7 /* ASLayoutTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */; };
|
||||||
E55D86321CA8A14000A0C26F /* ASLayoutable.mm in Sources */ = {isa = PBXBuildFile; fileRef = E55D86311CA8A14000A0C26F /* ASLayoutable.mm */; };
|
E55D86321CA8A14000A0C26F /* ASLayoutable.mm in Sources */ = {isa = PBXBuildFile; fileRef = E55D86311CA8A14000A0C26F /* ASLayoutable.mm */; };
|
||||||
E55D86331CA8A14000A0C26F /* ASLayoutable.mm in Sources */ = {isa = PBXBuildFile; fileRef = E55D86311CA8A14000A0C26F /* ASLayoutable.mm */; };
|
E55D86331CA8A14000A0C26F /* ASLayoutable.mm in Sources */ = {isa = PBXBuildFile; fileRef = E55D86311CA8A14000A0C26F /* ASLayoutable.mm */; };
|
||||||
E5711A2B1C840C81009619D4 /* ASIndexedNodeContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E5711A2A1C840C81009619D4 /* ASIndexedNodeContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E5711A2B1C840C81009619D4 /* ASIndexedNodeContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E5711A2A1C840C81009619D4 /* ASIndexedNodeContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@ -949,8 +949,8 @@
|
|||||||
DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ASCollectionInternal.m; path = Details/ASCollectionInternal.m; sourceTree = "<group>"; };
|
DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ASCollectionInternal.m; path = Details/ASCollectionInternal.m; sourceTree = "<group>"; };
|
||||||
DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASButtonNode.h; sourceTree = "<group>"; };
|
DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASButtonNode.h; sourceTree = "<group>"; };
|
||||||
DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASButtonNode.mm; sourceTree = "<group>"; };
|
DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASButtonNode.mm; sourceTree = "<group>"; };
|
||||||
E52405B21C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASDisplayNodeLayoutContext.mm; sourceTree = "<group>"; };
|
E52405B21C8FEF03004DC8E7 /* ASLayoutTransition.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASLayoutTransition.mm; sourceTree = "<group>"; };
|
||||||
E52405B41C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASDisplayNodeLayoutContext.h; sourceTree = "<group>"; };
|
E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASLayoutTransition.h; sourceTree = "<group>"; };
|
||||||
E55D86311CA8A14000A0C26F /* ASLayoutable.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ASLayoutable.mm; path = AsyncDisplayKit/Layout/ASLayoutable.mm; sourceTree = "<group>"; };
|
E55D86311CA8A14000A0C26F /* ASLayoutable.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ASLayoutable.mm; path = AsyncDisplayKit/Layout/ASLayoutable.mm; sourceTree = "<group>"; };
|
||||||
E5711A2A1C840C81009619D4 /* ASIndexedNodeContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASIndexedNodeContext.h; sourceTree = "<group>"; };
|
E5711A2A1C840C81009619D4 /* ASIndexedNodeContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASIndexedNodeContext.h; sourceTree = "<group>"; };
|
||||||
E5711A2D1C840C96009619D4 /* ASIndexedNodeContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASIndexedNodeContext.m; sourceTree = "<group>"; };
|
E5711A2D1C840C96009619D4 /* ASIndexedNodeContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASIndexedNodeContext.m; sourceTree = "<group>"; };
|
||||||
@ -1320,8 +1320,8 @@
|
|||||||
DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */,
|
DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */,
|
||||||
058D0A0B195D050800B7D73C /* ASDisplayNode+UIViewBridge.mm */,
|
058D0A0B195D050800B7D73C /* ASDisplayNode+UIViewBridge.mm */,
|
||||||
058D0A0C195D050800B7D73C /* ASDisplayNodeInternal.h */,
|
058D0A0C195D050800B7D73C /* ASDisplayNodeInternal.h */,
|
||||||
E52405B41C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h */,
|
E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */,
|
||||||
E52405B21C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm */,
|
E52405B21C8FEF03004DC8E7 /* ASLayoutTransition.mm */,
|
||||||
69E100691CA89CB600D88C1B /* ASEnvironmentInternal.h */,
|
69E100691CA89CB600D88C1B /* ASEnvironmentInternal.h */,
|
||||||
69E1006A1CA89CB600D88C1B /* ASEnvironmentInternal.mm */,
|
69E1006A1CA89CB600D88C1B /* ASEnvironmentInternal.mm */,
|
||||||
058D0A0D195D050800B7D73C /* ASImageNode+CGExtras.h */,
|
058D0A0D195D050800B7D73C /* ASImageNode+CGExtras.h */,
|
||||||
@ -1615,7 +1615,7 @@
|
|||||||
055B9FA81A1C154B00035D6D /* ASNetworkImageNode.h in Headers */,
|
055B9FA81A1C154B00035D6D /* ASNetworkImageNode.h in Headers */,
|
||||||
ACF6ED2B1B17843500DA7C62 /* ASOverlayLayoutSpec.h in Headers */,
|
ACF6ED2B1B17843500DA7C62 /* ASOverlayLayoutSpec.h in Headers */,
|
||||||
055F1A3819ABD413004DAFF1 /* ASRangeController.h in Headers */,
|
055F1A3819ABD413004DAFF1 /* ASRangeController.h in Headers */,
|
||||||
E52405B51C8FEF16004DC8E7 /* ASDisplayNodeLayoutContext.h in Headers */,
|
E52405B51C8FEF16004DC8E7 /* ASLayoutTransition.h in Headers */,
|
||||||
ACF6ED2D1B17843500DA7C62 /* ASRatioLayoutSpec.h in Headers */,
|
ACF6ED2D1B17843500DA7C62 /* ASRatioLayoutSpec.h in Headers */,
|
||||||
AC47D9451B3BB41900AAEE9D /* ASRelativeSize.h in Headers */,
|
AC47D9451B3BB41900AAEE9D /* ASRelativeSize.h in Headers */,
|
||||||
291B63FB1AA53A7A000A71B3 /* ASScrollDirection.h in Headers */,
|
291B63FB1AA53A7A000A71B3 /* ASScrollDirection.h in Headers */,
|
||||||
@ -1790,7 +1790,7 @@
|
|||||||
E5711A2C1C840C81009619D4 /* ASIndexedNodeContext.h in Headers */,
|
E5711A2C1C840C81009619D4 /* ASIndexedNodeContext.h in Headers */,
|
||||||
254C6B7B1BF94DF4003EC431 /* ASTextKitRenderer+Positioning.h in Headers */,
|
254C6B7B1BF94DF4003EC431 /* ASTextKitRenderer+Positioning.h in Headers */,
|
||||||
CC7FD9E21BB603FF005CCB2B /* ASPhotosFrameworkImageRequest.h in Headers */,
|
CC7FD9E21BB603FF005CCB2B /* ASPhotosFrameworkImageRequest.h in Headers */,
|
||||||
DE4843DC1C93EAC100A1F33B /* ASDisplayNodeLayoutContext.h in Headers */,
|
DE4843DC1C93EAC100A1F33B /* ASLayoutTransition.h in Headers */,
|
||||||
254C6B761BF94DF4003EC431 /* ASTextNodeTypes.h in Headers */,
|
254C6B761BF94DF4003EC431 /* ASTextNodeTypes.h in Headers */,
|
||||||
34EFC7711B701CFF00AD841F /* ASStackLayoutSpec.h in Headers */,
|
34EFC7711B701CFF00AD841F /* ASStackLayoutSpec.h in Headers */,
|
||||||
2767E9411BB19BD600EA9B77 /* ASViewController.h in Headers */,
|
2767E9411BB19BD600EA9B77 /* ASViewController.h in Headers */,
|
||||||
@ -2100,7 +2100,7 @@
|
|||||||
0442850F1BAA64EC00D16268 /* ASMultidimensionalArrayUtils.mm in Sources */,
|
0442850F1BAA64EC00D16268 /* ASMultidimensionalArrayUtils.mm in Sources */,
|
||||||
7A06A73A1C35F08800FE8DAA /* ASRelativeLayoutSpec.mm in Sources */,
|
7A06A73A1C35F08800FE8DAA /* ASRelativeLayoutSpec.mm in Sources */,
|
||||||
257754921BED28F300737CA5 /* ASEqualityHashHelpers.mm in Sources */,
|
257754921BED28F300737CA5 /* ASEqualityHashHelpers.mm in Sources */,
|
||||||
E52405B31C8FEF03004DC8E7 /* ASDisplayNodeLayoutContext.mm in Sources */,
|
E52405B31C8FEF03004DC8E7 /* ASLayoutTransition.mm in Sources */,
|
||||||
69CB62AD1CB8165900024920 /* _ASDisplayViewAccessiblity.mm in Sources */,
|
69CB62AD1CB8165900024920 /* _ASDisplayViewAccessiblity.mm in Sources */,
|
||||||
257754AB1BEE44CD00737CA5 /* ASTextKitEntityAttribute.m in Sources */,
|
257754AB1BEE44CD00737CA5 /* ASTextKitEntityAttribute.m in Sources */,
|
||||||
055F1A3919ABD413004DAFF1 /* ASRangeController.mm in Sources */,
|
055F1A3919ABD413004DAFF1 /* ASRangeController.mm in Sources */,
|
||||||
@ -2189,7 +2189,7 @@
|
|||||||
files = (
|
files = (
|
||||||
9C70F2091CDABA36007D6C76 /* ASViewController.mm in Sources */,
|
9C70F2091CDABA36007D6C76 /* ASViewController.mm in Sources */,
|
||||||
8BBBAB8D1CEBAF1E00107FC6 /* ASDefaultPlaybackButton.m in Sources */,
|
8BBBAB8D1CEBAF1E00107FC6 /* ASDefaultPlaybackButton.m in Sources */,
|
||||||
DE4843DB1C93EAB100A1F33B /* ASDisplayNodeLayoutContext.mm in Sources */,
|
DE4843DB1C93EAB100A1F33B /* ASLayoutTransition.mm in Sources */,
|
||||||
B30BF6541C59D889004FCD53 /* ASLayoutManager.m in Sources */,
|
B30BF6541C59D889004FCD53 /* ASLayoutManager.m in Sources */,
|
||||||
92DD2FE71BF4D0850074C9DD /* ASMapNode.mm in Sources */,
|
92DD2FE71BF4D0850074C9DD /* ASMapNode.mm in Sources */,
|
||||||
636EA1A51C7FF4EF00EE152F /* ASDefaultPlayButton.m in Sources */,
|
636EA1A51C7FF4EF00EE152F /* ASDefaultPlayButton.m in Sources */,
|
||||||
|
|||||||
@ -164,6 +164,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
*/
|
*/
|
||||||
- (void)reloadDataImmediately;
|
- (void)reloadDataImmediately;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers a relayout of all nodes.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
- (void)relayoutItems;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Blocks execution of the main thread until all section and row updates are committed. This method must be called from the main thread.
|
* Blocks execution of the main thread until all section and row updates are committed. This method must be called from the main thread.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -313,6 +313,11 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
|||||||
[super reloadData];
|
[super reloadData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)relayoutItems
|
||||||
|
{
|
||||||
|
[_dataController relayoutAllNodes];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)waitUntilAllUpdatesAreCommitted
|
- (void)waitUntilAllUpdatesAreCommitted
|
||||||
{
|
{
|
||||||
ASDisplayNodeAssertMainThread();
|
ASDisplayNodeAssertMainThread();
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#import "_ASDisplayView.h"
|
#import "_ASDisplayView.h"
|
||||||
#import "_ASScopeTimer.h"
|
#import "_ASScopeTimer.h"
|
||||||
#import "_ASCoreAnimationExtras.h"
|
#import "_ASCoreAnimationExtras.h"
|
||||||
#import "ASDisplayNodeLayoutContext.h"
|
#import "ASLayoutTransition.h"
|
||||||
#import "ASDisplayNodeExtras.h"
|
#import "ASDisplayNodeExtras.h"
|
||||||
#import "ASTraitCollection.h"
|
#import "ASTraitCollection.h"
|
||||||
#import "ASEqualityHelpers.h"
|
#import "ASEqualityHelpers.h"
|
||||||
@ -613,19 +613,19 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
|
|||||||
ASLayout *newLayout = [self calculateLayoutThatFits:constrainedSize];
|
ASLayout *newLayout = [self calculateLayoutThatFits:constrainedSize];
|
||||||
|
|
||||||
if (ASHierarchyStateIncludesLayoutPending(_hierarchyState)) {
|
if (ASHierarchyStateIncludesLayoutPending(_hierarchyState)) {
|
||||||
_pendingLayoutContext = [[ASDisplayNodeLayoutContext alloc] initWithNode:self
|
_pendingLayoutTransition = [[ASLayoutTransition alloc] initWithNode:self
|
||||||
pendingLayout:newLayout
|
pendingLayout:newLayout
|
||||||
pendingConstrainedSize:constrainedSize
|
pendingConstrainedSize:constrainedSize
|
||||||
previousLayout:previousLayout
|
previousLayout:previousLayout
|
||||||
previousConstrainedSize:previousConstrainedSize];
|
previousConstrainedSize:previousConstrainedSize];
|
||||||
} else {
|
} else {
|
||||||
ASDisplayNodeLayoutContext *layoutContext;
|
ASLayoutTransition *layoutContext;
|
||||||
if (self.usesImplicitHierarchyManagement) {
|
if (self.usesImplicitHierarchyManagement) {
|
||||||
layoutContext = [[ASDisplayNodeLayoutContext alloc] initWithNode:self
|
layoutContext = [[ASLayoutTransition alloc] initWithNode:self
|
||||||
pendingLayout:newLayout
|
pendingLayout:newLayout
|
||||||
pendingConstrainedSize:constrainedSize
|
pendingConstrainedSize:constrainedSize
|
||||||
previousLayout:previousLayout
|
previousLayout:previousLayout
|
||||||
previousConstrainedSize:previousConstrainedSize];
|
previousConstrainedSize:previousConstrainedSize];
|
||||||
}
|
}
|
||||||
[self applyLayout:newLayout constrainedSize:constrainedSize layoutContext:layoutContext];
|
[self applyLayout:newLayout constrainedSize:constrainedSize layoutContext:layoutContext];
|
||||||
[self _completeLayoutCalculation];
|
[self _completeLayoutCalculation];
|
||||||
@ -740,15 +740,15 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
|
|||||||
completion();
|
completion();
|
||||||
}
|
}
|
||||||
|
|
||||||
_pendingLayoutContext = [[ASDisplayNodeLayoutContext alloc] initWithNode:self
|
_pendingLayoutTransition = [[ASLayoutTransition alloc] initWithNode:self
|
||||||
pendingLayout:newLayout
|
pendingLayout:newLayout
|
||||||
pendingConstrainedSize:constrainedSize
|
pendingConstrainedSize:constrainedSize
|
||||||
previousLayout:previousLayout
|
previousLayout:previousLayout
|
||||||
previousConstrainedSize:previousConstrainedSize];
|
previousConstrainedSize:previousConstrainedSize];
|
||||||
[_pendingLayoutContext applySubnodeInsertions];
|
[_pendingLayoutTransition applySubnodeInsertions];
|
||||||
|
|
||||||
_transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated
|
_transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated
|
||||||
layoutDelegate:_pendingLayoutContext
|
layoutDelegate:_pendingLayoutTransition
|
||||||
completionDelegate:self];
|
completionDelegate:self];
|
||||||
[self animateLayoutTransition:_transitionContext];
|
[self animateLayoutTransition:_transitionContext];
|
||||||
});
|
});
|
||||||
@ -849,9 +849,9 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
|
|||||||
|
|
||||||
- (void)didCompleteLayoutTransition:(id<ASContextTransitioning>)context
|
- (void)didCompleteLayoutTransition:(id<ASContextTransitioning>)context
|
||||||
{
|
{
|
||||||
[_pendingLayoutContext applySubnodeRemovals];
|
[_pendingLayoutTransition applySubnodeRemovals];
|
||||||
[self _completeLayoutCalculation];
|
[self _completeLayoutCalculation];
|
||||||
_pendingLayoutContext = nil;
|
_pendingLayoutTransition = nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -941,7 +941,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
|
|||||||
[self _addSubnodeViewsAndLayers];
|
[self _addSubnodeViewsAndLayers];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.interfaceState & ASInterfaceStateVisible) {
|
if (ASInterfaceStateIncludesVisible(self.interfaceState)) {
|
||||||
// TODO: Change this to recursivelyEnsureDisplay - but need a variant that does not skip
|
// TODO: Change this to recursivelyEnsureDisplay - but need a variant that does not skip
|
||||||
// nodes that have shouldBypassEnsureDisplay set (such as image nodes) so they are rasterized.
|
// nodes that have shouldBypassEnsureDisplay set (such as image nodes) so they are rasterized.
|
||||||
[self recursivelyDisplayImmediately];
|
[self recursivelyDisplayImmediately];
|
||||||
@ -2308,7 +2308,7 @@ void recursivelyTriggerDisplayForLayer(CALayer *layer, BOOL shouldBlock)
|
|||||||
{
|
{
|
||||||
ASDN::MutexLocker l(_propertyLock);
|
ASDN::MutexLocker l(_propertyLock);
|
||||||
_pendingTransitionID = ASLayoutableContextInvalidTransitionID;
|
_pendingTransitionID = ASLayoutableContextInvalidTransitionID;
|
||||||
_pendingLayoutContext = nil;
|
_pendingLayoutTransition = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2341,17 +2341,17 @@ void recursivelyTriggerDisplayForLayer(CALayer *layer, BOOL shouldBlock)
|
|||||||
- (void)applyPendingLayoutContext
|
- (void)applyPendingLayoutContext
|
||||||
{
|
{
|
||||||
ASDN::MutexLocker l(_propertyLock);
|
ASDN::MutexLocker l(_propertyLock);
|
||||||
if (_pendingLayoutContext) {
|
if (_pendingLayoutTransition) {
|
||||||
[self applyLayout:_pendingLayoutContext.pendingLayout
|
[self applyLayout:_pendingLayoutTransition.pendingLayout
|
||||||
constrainedSize:_pendingLayoutContext.pendingConstrainedSize
|
constrainedSize:_pendingLayoutTransition.pendingConstrainedSize
|
||||||
layoutContext:_pendingLayoutContext];
|
layoutContext:_pendingLayoutTransition];
|
||||||
_pendingLayoutContext = nil;
|
_pendingLayoutTransition = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)applyLayout:(ASLayout *)layout
|
- (void)applyLayout:(ASLayout *)layout
|
||||||
constrainedSize:(ASSizeRange)constrainedSize
|
constrainedSize:(ASSizeRange)constrainedSize
|
||||||
layoutContext:(ASDisplayNodeLayoutContext *)layoutContext
|
layoutContext:(ASLayoutTransition *)layoutContext
|
||||||
{
|
{
|
||||||
ASDN::MutexLocker l(_propertyLock);
|
ASDN::MutexLocker l(_propertyLock);
|
||||||
_layout = layout;
|
_layout = layout;
|
||||||
|
|||||||
@ -134,6 +134,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
*/
|
*/
|
||||||
- (void)reloadDataImmediately;
|
- (void)reloadDataImmediately;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers a relayout of all nodes.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
- (void)relayoutItems;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* begins a batch of insert, delete reload and move operations. This method must be called from the main thread.
|
* begins a batch of insert, delete reload and move operations. This method must be called from the main thread.
|
||||||
*/
|
*/
|
||||||
@ -285,9 +291,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
/**
|
/**
|
||||||
* Similar to -visibleCells.
|
* Similar to -visibleCells.
|
||||||
*
|
*
|
||||||
* @returns an array containing the nodes being displayed on screen.
|
* @returns an array containing the cell nodes being displayed on screen.
|
||||||
*/
|
*/
|
||||||
- (NSArray<ASDisplayNode *> *)visibleNodes;
|
- (NSArray<ASCellNode *> *)visibleNodes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* YES to automatically adjust the contentOffset when cells are inserted or deleted "before"
|
* YES to automatically adjust the contentOffset when cells are inserted or deleted "before"
|
||||||
|
|||||||
@ -354,6 +354,11 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell";
|
|||||||
[super reloadData];
|
[super reloadData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)relayoutItems
|
||||||
|
{
|
||||||
|
[_dataController relayoutAllNodes];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
|
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
|
||||||
{
|
{
|
||||||
[_layoutController setTuningParameters:tuningParameters forRangeMode:ASLayoutRangeModeFull rangeType:rangeType];
|
[_layoutController setTuningParameters:tuningParameters forRangeMode:ASLayoutRangeModeFull rangeType:rangeType];
|
||||||
@ -389,11 +394,11 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell";
|
|||||||
return [_dataController indexPathForNode:cellNode];
|
return [_dataController indexPathForNode:cellNode];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSArray *)visibleNodes
|
- (NSArray<ASCellNode *> *)visibleNodes
|
||||||
{
|
{
|
||||||
NSArray *indexPaths = [self visibleNodeIndexPathsForRangeController:_rangeController];
|
NSArray *indexPaths = [self visibleNodeIndexPathsForRangeController:_rangeController];
|
||||||
|
|
||||||
NSMutableArray *visibleNodes = [NSMutableArray array];
|
NSMutableArray<ASCellNode *> *visibleNodes = [NSMutableArray array];
|
||||||
for (NSIndexPath *indexPath in indexPaths) {
|
for (NSIndexPath *indexPath in indexPaths) {
|
||||||
ASCellNode *node = [self nodeForRowAtIndexPath:indexPath];
|
ASCellNode *node = [self nodeForRowAtIndexPath:indexPath];
|
||||||
if (node) {
|
if (node) {
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#import "ASSentinel.h"
|
#import "ASSentinel.h"
|
||||||
#import "ASThread.h"
|
#import "ASThread.h"
|
||||||
#import "_ASTransitionContext.h"
|
#import "_ASTransitionContext.h"
|
||||||
#import "ASDisplayNodeLayoutContext.h"
|
#import "ASLayoutTransition.h"
|
||||||
#import "ASEnvironment.h"
|
#import "ASEnvironment.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -113,7 +113,7 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo
|
|||||||
BOOL _usesImplicitHierarchyManagement;
|
BOOL _usesImplicitHierarchyManagement;
|
||||||
|
|
||||||
int32_t _pendingTransitionID;
|
int32_t _pendingTransitionID;
|
||||||
ASDisplayNodeLayoutContext *_pendingLayoutContext;
|
ASLayoutTransition *_pendingLayoutTransition;
|
||||||
|
|
||||||
ASDisplayNodeViewBlock _viewBlock;
|
ASDisplayNodeViewBlock _viewBlock;
|
||||||
ASDisplayNodeLayerBlock _layerBlock;
|
ASDisplayNodeLayerBlock _layerBlock;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// ASDisplayNodeLayoutContext.h
|
// ASLayoutTransition.h
|
||||||
// AsyncDisplayKit
|
// AsyncDisplayKit
|
||||||
//
|
//
|
||||||
// Created by Huy Nguyen on 3/8/16.
|
// Created by Huy Nguyen on 3/8/16.
|
||||||
@ -12,7 +12,7 @@
|
|||||||
@class ASDisplayNode;
|
@class ASDisplayNode;
|
||||||
@class ASLayout;
|
@class ASLayout;
|
||||||
|
|
||||||
@interface ASDisplayNodeLayoutContext : NSObject <_ASTransitionContextLayoutDelegate>
|
@interface ASLayoutTransition : NSObject <_ASTransitionContextLayoutDelegate>
|
||||||
|
|
||||||
@property (nonatomic, readonly, weak) ASDisplayNode *node;
|
@property (nonatomic, readonly, weak) ASDisplayNode *node;
|
||||||
@property (nonatomic, readonly, strong) ASLayout *pendingLayout;
|
@property (nonatomic, readonly, strong) ASLayout *pendingLayout;
|
||||||
@ -1,12 +1,12 @@
|
|||||||
//
|
//
|
||||||
// ASDisplayNodeLayoutContext.mm
|
// ASLayoutTransition.mm
|
||||||
// AsyncDisplayKit
|
// AsyncDisplayKit
|
||||||
//
|
//
|
||||||
// Created by Huy Nguyen on 3/8/16.
|
// Created by Huy Nguyen on 3/8/16.
|
||||||
// Copyright © 2016 Facebook. All rights reserved.
|
// Copyright © 2016 Facebook. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "ASDisplayNodeLayoutContext.h"
|
#import "ASLayoutTransition.h"
|
||||||
|
|
||||||
#import "ASDisplayNode.h"
|
#import "ASDisplayNode.h"
|
||||||
#import "ASDisplayNodeInternal.h"
|
#import "ASDisplayNodeInternal.h"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
#import "NSArray+Diffing.h"
|
#import "NSArray+Diffing.h"
|
||||||
#import "ASEqualityHelpers.h"
|
#import "ASEqualityHelpers.h"
|
||||||
|
|
||||||
@implementation ASDisplayNodeLayoutContext {
|
@implementation ASLayoutTransition {
|
||||||
ASDN::RecursiveMutex _propertyLock;
|
ASDN::RecursiveMutex _propertyLock;
|
||||||
BOOL _calculatedSubnodeOperations;
|
BOOL _calculatedSubnodeOperations;
|
||||||
NSArray<ASDisplayNode *> *_insertedSubnodes;
|
NSArray<ASDisplayNode *> *_insertedSubnodes;
|
||||||
2
Podfile
2
Podfile
@ -2,7 +2,7 @@ source 'https://github.com/CocoaPods/Specs.git'
|
|||||||
|
|
||||||
platform :ios, '7.0'
|
platform :ios, '7.0'
|
||||||
|
|
||||||
target :'AsyncDisplayKitTests', :exclusive => true do
|
target :'AsyncDisplayKitTests' do
|
||||||
pod 'OCMock', '~> 2.2'
|
pod 'OCMock', '~> 2.2'
|
||||||
pod 'FBSnapshotTestCase', '~> 1.8.1'
|
pod 'FBSnapshotTestCase', '~> 1.8.1'
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user