mirror of
https://github.com/danog/Telegram.git
synced 2024-12-04 02:17:51 +01:00
84 lines
3.6 KiB
Objective-C
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
|