Skip to content

Commit

Permalink
[ASCollectionView] Supplementary nodes should not enter ASHierarchySt…
Browse files Browse the repository at this point in the history
…ateRangeManaged. (TextureGroup#1310)

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.
  • Loading branch information
appleguy authored and maicki committed Jan 11, 2019
1 parent 5212d02 commit 2d43f46
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion Source/ASCollectionView.mm
Original file line number Diff line number Diff line change
Expand Up @@ -2044,17 +2044,23 @@ - (ASCellNodeBlock)dataController:(ASDataController *)dataController supplementa
}

// Wrap the node block
BOOL disableRangeController = ASCellLayoutModeIncludes(ASCellLayoutModeDisableRangeController);
// BOOL disableRangeController = ASCellLayoutModeIncludes(ASCellLayoutModeDisableRangeController);
__weak __typeof__(self) weakSelf = self;
return ^{
__typeof__(self) strongSelf = weakSelf;
ASCellNode *node = block();
ASDisplayNodeAssert([node isKindOfClass:[ASCellNode class]],
@"ASCollectionNode provided a non-ASCellNode! %@, %@", node, strongSelf);

// TODO: ASRangeController doesn't currently support managing interfaceState for supplementary nodes.
// For now, we allow the standard ASInterfaceStateInHierarchy behavior by ensuring we do not inform
// the node that it should expect external management of interfaceState.
/*
if (!disableRangeController) {
[node enterHierarchyState:ASHierarchyStateRangeManaged];
}
*/

if (node.interactionDelegate == nil) {
node.interactionDelegate = strongSelf;
}
Expand Down

0 comments on commit 2d43f46

Please sign in to comment.