mirror of
https://github.com/danog/Telegram.git
synced 2024-12-04 10:27:46 +01:00
96 lines
3.0 KiB
Mathematica
96 lines
3.0 KiB
Mathematica
|
#import "TGBridgeLocationMediaAttachment.h"
|
||
|
|
||
|
const NSInteger TGBridgeLocationMediaAttachmentType = 0x0C9ED06E;
|
||
|
|
||
|
NSString *const TGBridgeLocationMediaLatitudeKey = @"lat";
|
||
|
NSString *const TGBridgeLocationMediaLongitudeKey = @"lon";
|
||
|
NSString *const TGBridgeLocationMediaVenueKey = @"venue";
|
||
|
|
||
|
NSString *const TGBridgeVenueTitleKey = @"title";
|
||
|
NSString *const TGBridgeVenueAddressKey = @"address";
|
||
|
NSString *const TGBridgeVenueProviderKey = @"provider";
|
||
|
NSString *const TGBridgeVenueIdKey = @"venueId";
|
||
|
|
||
|
@implementation TGBridgeVenueAttachment
|
||
|
|
||
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
||
|
{
|
||
|
self = [super init];
|
||
|
if (self != nil)
|
||
|
{
|
||
|
_title = [aDecoder decodeObjectForKey:TGBridgeVenueTitleKey];
|
||
|
_address = [aDecoder decodeObjectForKey:TGBridgeVenueAddressKey];
|
||
|
_provider = [aDecoder decodeObjectForKey:TGBridgeVenueProviderKey];
|
||
|
_venueId = [aDecoder decodeObjectForKey:TGBridgeVenueIdKey];
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
|
||
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
||
|
{
|
||
|
[aCoder encodeObject:self.title forKey:TGBridgeVenueTitleKey];
|
||
|
[aCoder encodeObject:self.address forKey:TGBridgeVenueAddressKey];
|
||
|
[aCoder encodeObject:self.provider forKey:TGBridgeVenueProviderKey];
|
||
|
[aCoder encodeObject:self.venueId forKey:TGBridgeVenueIdKey];
|
||
|
}
|
||
|
|
||
|
- (BOOL)isEqual:(id)object
|
||
|
{
|
||
|
if (object == self)
|
||
|
return YES;
|
||
|
|
||
|
if (!object || ![object isKindOfClass:[self class]])
|
||
|
return NO;
|
||
|
|
||
|
TGBridgeVenueAttachment *venue = (TGBridgeVenueAttachment *)object;
|
||
|
|
||
|
return [self.title isEqualToString:venue.title] && [self.address isEqualToString:venue.address] && [self.provider isEqualToString:venue.provider] && [self.venueId isEqualToString:venue.venueId];
|
||
|
}
|
||
|
|
||
|
@end
|
||
|
|
||
|
|
||
|
@implementation TGBridgeLocationMediaAttachment
|
||
|
|
||
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
||
|
{
|
||
|
self = [super init];
|
||
|
if (self != nil)
|
||
|
{
|
||
|
_latitude = [aDecoder decodeDoubleForKey:TGBridgeLocationMediaLatitudeKey];
|
||
|
_longitude = [aDecoder decodeDoubleForKey:TGBridgeLocationMediaLongitudeKey];
|
||
|
_venue = [aDecoder decodeObjectForKey:TGBridgeLocationMediaVenueKey];
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
|
||
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
||
|
{
|
||
|
[aCoder encodeDouble:self.latitude forKey:TGBridgeLocationMediaLatitudeKey];
|
||
|
[aCoder encodeDouble:self.longitude forKey:TGBridgeLocationMediaLongitudeKey];
|
||
|
[aCoder encodeObject:self.venue forKey:TGBridgeLocationMediaVenueKey];
|
||
|
}
|
||
|
|
||
|
- (BOOL)isEqual:(id)object
|
||
|
{
|
||
|
if (object == self)
|
||
|
return YES;
|
||
|
|
||
|
if (!object || ![object isKindOfClass:[self class]])
|
||
|
return NO;
|
||
|
|
||
|
TGBridgeLocationMediaAttachment *location = (TGBridgeLocationMediaAttachment *)object;
|
||
|
|
||
|
bool equalCoord = (fabs(self.latitude - location.latitude) < DBL_EPSILON && fabs(self.longitude - location.longitude) < DBL_EPSILON);
|
||
|
bool equalVenue = (self.venue == nil && location.venue == nil) || ([self.venue isEqual:location.venue]);
|
||
|
|
||
|
return equalCoord || equalVenue;
|
||
|
}
|
||
|
|
||
|
+ (NSInteger)mediaType
|
||
|
{
|
||
|
return TGBridgeLocationMediaAttachmentType;
|
||
|
}
|
||
|
|
||
|
@end
|