mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-05 20:22:15 +00:00
* 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
35 lines
753 B
Plaintext
35 lines
753 B
Plaintext
//
|
|
// ASLayout+IGListKit.mm
|
|
// Texture
|
|
//
|
|
// Copyright (c) 2018-present, Pinterest, Inc. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
#import <AsyncDisplayKit/ASAvailability.h>
|
|
#if AS_IG_LIST_KIT
|
|
#import "ASLayout+IGListKit.h"
|
|
|
|
@interface ASLayout() {
|
|
@public
|
|
id<ASLayoutElement> _layoutElement;
|
|
}
|
|
@end
|
|
|
|
@implementation ASLayout(IGListKit)
|
|
|
|
- (id <NSObject>)diffIdentifier
|
|
{
|
|
return self->_layoutElement;
|
|
}
|
|
|
|
- (BOOL)isEqualToDiffableObject:(id <IGListDiffable>)other
|
|
{
|
|
return [self isEqual:other];
|
|
}
|
|
@end
|
|
#endif // AS_IG_LIST_KIT
|