1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-04 02:17:51 +01:00
Telegram/Watch/Bridge/TGBridgeDocumentMediaAttachment+TGDocumentMediaAttachment.m
2016-02-25 01:03:51 +01:00

84 lines
3.6 KiB
Objective-C

#import "TGBridgeDocumentMediaAttachment+TGDocumentMediaAttachment.h"
@implementation TGBridgeDocumentMediaAttachment (TGDocumentMediaAttachment)
+ (TGBridgeDocumentMediaAttachment *)attachmentWithTGDocumentMediaAttachment:(TGDocumentMediaAttachment *)attachment
{
if (attachment == nil)
return nil;
TGBridgeDocumentMediaAttachment *bridgeAttachment = [[TGBridgeDocumentMediaAttachment alloc] init];
bridgeAttachment.documentId = attachment.documentId;
bridgeAttachment.localDocumentId = attachment.localDocumentId;
bridgeAttachment.accessHash = attachment.accessHash;
bridgeAttachment.datacenterId = attachment.datacenterId;
bridgeAttachment.legacyThumbnailUri = [attachment.thumbnailInfo imageUrlForLargestSize:NULL];
bridgeAttachment.fileSize = attachment.size;
bridgeAttachment.fileName = attachment.safeFileName;
for (id attribute in attachment.attributes)
{
if ([attribute isKindOfClass:[TGDocumentAttributeImageSize class]])
{
bridgeAttachment.imageSize = [NSValue valueWithCGSize:((TGDocumentAttributeImageSize *)attribute).size];
}
if ([attribute isKindOfClass:[TGDocumentAttributeVideo class]]) {
bridgeAttachment.imageSize = [NSValue valueWithCGSize:((TGDocumentAttributeVideo *)attribute).size];
}
if ([attribute isKindOfClass:[TGDocumentAttributeAnimated class]])
{
bridgeAttachment.isAnimated = true;
}
if ([attribute isKindOfClass:[TGDocumentAttributeSticker class]])
{
TGDocumentAttributeSticker *stickerAttribute = (TGDocumentAttributeSticker *)attribute;
bridgeAttachment.isSticker = true;
if (stickerAttribute.alt.length > 0)
bridgeAttachment.stickerAlt = stickerAttribute.alt;
}
if ([attribute isKindOfClass:[TGDocumentAttributeAudio class]])
{
TGDocumentAttributeAudio *audioAttribute = (TGDocumentAttributeAudio *)attribute;
bridgeAttachment.isAudio = true;
bridgeAttachment.title = audioAttribute.title;
bridgeAttachment.performer = audioAttribute.performer;
bridgeAttachment.isVoice = audioAttribute.isVoice;
bridgeAttachment.duration = audioAttribute.duration;
}
}
return bridgeAttachment;
}
+ (TGDocumentMediaAttachment *)tgDocumentMediaAttachmentWithBridgeDocumentMediaAttachment:(TGBridgeDocumentMediaAttachment *)bridgeAttachment
{
if (bridgeAttachment == nil)
return nil;
TGDocumentMediaAttachment *attachment = [[TGDocumentMediaAttachment alloc] init];
attachment.documentId = bridgeAttachment.documentId;
attachment.localDocumentId = bridgeAttachment.localDocumentId;
attachment.accessHash = bridgeAttachment.accessHash;
attachment.datacenterId = bridgeAttachment.datacenterId;
NSMutableArray *attributes = [[NSMutableArray alloc] init];
if (bridgeAttachment.isSticker)
[attributes addObject:[[TGDocumentAttributeSticker alloc] initWithAlt:bridgeAttachment.stickerAlt packReference:nil]];
if (bridgeAttachment.imageSize != nil)
[attributes addObject:[[TGDocumentAttributeImageSize alloc] initWithSize:bridgeAttachment.imageSize.CGSizeValue]];
if (bridgeAttachment.isAudio)
{
[attributes addObject:[[TGDocumentAttributeAudio alloc] initWithIsVoice:bridgeAttachment.isVoice title:bridgeAttachment.title performer:bridgeAttachment.performer duration:bridgeAttachment.duration waveform:nil]];
}
attachment.attributes = attributes;
return attachment;
}
@end