Swiftgram/submodules/LegacyComponents/Sources/TGStickerPackReference.m
2020-02-22 15:38:54 +04:00

146 lines
3.4 KiB
Objective-C

#import "TGStickerPackReference.h"
#import "LegacyComponentsInternal.h"
#import "PSKeyValueCoder.h"
@implementation TGStickerPackBuiltinReference
- (instancetype)initWithCoder:(NSCoder *)__unused aDecoder
{
return [self init];
}
- (instancetype)copyWithZone:(NSZone *)__unused zone {
return self;
}
- (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)__unused coder
{
return [self init];
}
- (void)encodeWithCoder:(NSCoder *)__unused aCoder
{
}
- (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)__unused coder
{
}
- (BOOL)isEqual:(id)object
{
return [object isKindOfClass:[TGStickerPackBuiltinReference class]];
}
- (NSUInteger)hash {
return 1;
}
@end
@implementation TGStickerPackIdReference
- (instancetype)initWithPackId:(int64_t)packId packAccessHash:(int64_t)packAccessHash shortName:(NSString *)shortName
{
self = [super init];
if (self != nil)
{
_packId = packId;
_packAccessHash = packAccessHash;
_shortName = shortName;
}
return self;
}
- (instancetype)copyWithZone:(NSZone *)__unused zone {
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
return [self initWithPackId:[aDecoder decodeInt64ForKey:@"packId"] packAccessHash:[aDecoder decodeInt64ForKey:@"packAccessHash"] shortName:[aDecoder decodeObjectForKey:@"shortName"]];
}
- (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)coder
{
return [self initWithPackId:[coder decodeInt64ForCKey:"i"] packAccessHash:[coder decodeInt64ForCKey:"a"] shortName:[coder decodeStringForCKey:"s"]];
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeInt64:_packId forKey:@"packId"];
[aCoder encodeInt64:_packAccessHash forKey:@"packAccessHash"];
if (_shortName != nil)
[aCoder encodeObject:_shortName forKey:@"shortName"];
}
- (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)coder
{
[coder encodeInt64:_packId forCKey:"i"];
[coder encodeInt64:_packAccessHash forCKey:"a"];
[coder encodeString:_shortName forCKey:"s"];
}
- (BOOL)isEqual:(id)object
{
return [object isKindOfClass:[TGStickerPackIdReference class]] && ((TGStickerPackIdReference *)object)->_packId == _packId && ((TGStickerPackIdReference *)object)->_packAccessHash == _packAccessHash;
}
- (NSString *)description {
return [[NSString alloc] initWithFormat:@"(TGStickerPackIdReference packId: %lld, %lld, %@)", _packId, _packAccessHash, _shortName];
}
- (NSUInteger)hash {
return (NSUInteger)_packId;
}
@end
@implementation TGStickerPackShortnameReference
- (instancetype)initWithShortName:(NSString *)shortName
{
self = [super init];
if (self != nil)
{
_shortName = shortName;
}
return self;
}
- (instancetype)copyWithZone:(NSZone *)__unused zone {
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
return [self initWithShortName:[aDecoder decodeObjectForKey:@"shortName"]];
}
- (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)coder
{
return [self initWithShortName:[coder decodeStringForCKey:"s"]];
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_shortName forKey:@"shortName"];
}
- (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)coder
{
[coder encodeString:_shortName forCKey:"s"];
}
- (BOOL)isEqual:(id)object
{
return [object isKindOfClass:[TGStickerPackShortnameReference class]] && TGStringCompare(((TGStickerPackShortnameReference *)object)->_shortName, _shortName);
}
- (NSUInteger)hash {
return 2;
}
@end