| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // TUIImageReplyQuoteViewData.m
- // TUIChat
- //
- // Created by harvy on 2021/11/25.
- // Copyright © 2023 Tencent. All rights reserved.
- //
- #import "TUIImageReplyQuoteViewData.h"
- #import "TUIImageMessageCellData.h"
- @implementation TUIImageReplyQuoteViewData
- + (instancetype)getReplyQuoteViewData:(TUIMessageCellData *)originCellData {
- if (originCellData == nil) {
- return nil;
- }
- if (![originCellData isKindOfClass:TUIImageMessageCellData.class]) {
- return nil;
- }
- TUIImageReplyQuoteViewData *myData = [[TUIImageReplyQuoteViewData alloc] init];
- V2TIMImage *thumb = nil;
- for (V2TIMImage *image in originCellData.innerMessage.imageElem.imageList) {
- if (image.type == V2TIM_IMAGE_TYPE_THUMB) {
- thumb = image;
- break;
- }
- }
- myData.imageSize = [TUIImageReplyQuoteViewData displaySizeWithOriginSize:CGSizeMake(thumb ? thumb.width : 60, thumb ? thumb.height : 60)];
- myData.originCellData = originCellData;
- myData.imageStatus = TUIImageReplyQuoteStatusInit;
- return myData;
- }
- - (CGSize)contentSize:(CGFloat)maxWidth {
- return self.imageSize;
- }
- + (CGSize)displaySizeWithOriginSize:(CGSize)originSize {
- if (originSize.width == 0 || originSize.width == 0) {
- return CGSizeZero;
- }
- CGFloat max = 60;
- CGFloat w = 0, h = 0;
- if (originSize.width > originSize.height) {
- w = max;
- h = max * originSize.height / originSize.width;
- } else {
- w = max * originSize.width / originSize.height;
- h = max;
- }
- return CGSizeMake(w, h);
- }
- - (void)downloadImage {
- @weakify(self);
- self.imageStatus = TUIImageReplyQuoteStatusDownloading;
- if ([self.originCellData isKindOfClass:TUIImageMessageCellData.class]) {
- TUIImageMessageCellData *imageData = (TUIImageMessageCellData *)self.originCellData;
- [imageData downloadImage:TImage_Type_Thumb
- finish:^{
- @strongify(self);
- self.image = imageData.thumbImage;
- self.imageStatus = TUIImageReplyQuoteStatusSuccess;
- if (self.onFinish) {
- self.onFinish();
- }
- }];
- }
- }
- @end
|