TUIImageReplyQuoteViewData.m 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // TUIImageReplyQuoteViewData.m
  3. // TUIChat
  4. //
  5. // Created by harvy on 2021/11/25.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TUIImageReplyQuoteViewData.h"
  9. #import "TUIImageMessageCellData.h"
  10. @implementation TUIImageReplyQuoteViewData
  11. + (instancetype)getReplyQuoteViewData:(TUIMessageCellData *)originCellData {
  12. if (originCellData == nil) {
  13. return nil;
  14. }
  15. if (![originCellData isKindOfClass:TUIImageMessageCellData.class]) {
  16. return nil;
  17. }
  18. TUIImageReplyQuoteViewData *myData = [[TUIImageReplyQuoteViewData alloc] init];
  19. V2TIMImage *thumb = nil;
  20. for (V2TIMImage *image in originCellData.innerMessage.imageElem.imageList) {
  21. if (image.type == V2TIM_IMAGE_TYPE_THUMB) {
  22. thumb = image;
  23. break;
  24. }
  25. }
  26. myData.imageSize = [TUIImageReplyQuoteViewData displaySizeWithOriginSize:CGSizeMake(thumb ? thumb.width : 60, thumb ? thumb.height : 60)];
  27. myData.originCellData = originCellData;
  28. myData.imageStatus = TUIImageReplyQuoteStatusInit;
  29. return myData;
  30. }
  31. - (CGSize)contentSize:(CGFloat)maxWidth {
  32. return self.imageSize;
  33. }
  34. + (CGSize)displaySizeWithOriginSize:(CGSize)originSize {
  35. if (originSize.width == 0 || originSize.width == 0) {
  36. return CGSizeZero;
  37. }
  38. CGFloat max = 60;
  39. CGFloat w = 0, h = 0;
  40. if (originSize.width > originSize.height) {
  41. w = max;
  42. h = max * originSize.height / originSize.width;
  43. } else {
  44. w = max * originSize.width / originSize.height;
  45. h = max;
  46. }
  47. return CGSizeMake(w, h);
  48. }
  49. - (void)downloadImage {
  50. @weakify(self);
  51. self.imageStatus = TUIImageReplyQuoteStatusDownloading;
  52. if ([self.originCellData isKindOfClass:TUIImageMessageCellData.class]) {
  53. TUIImageMessageCellData *imageData = (TUIImageMessageCellData *)self.originCellData;
  54. [imageData downloadImage:TImage_Type_Thumb
  55. finish:^{
  56. @strongify(self);
  57. self.image = imageData.thumbImage;
  58. self.imageStatus = TUIImageReplyQuoteStatusSuccess;
  59. if (self.onFinish) {
  60. self.onFinish();
  61. }
  62. }];
  63. }
  64. }
  65. @end