Skip to content

Commit 03cddd5

Browse files
committed
refactor: message media type
1 parent 5e941fc commit 03cddd5

File tree

11 files changed

+73
-67
lines changed

11 files changed

+73
-67
lines changed

AVOS/Sources/Realtime/IM/Conversation/LCIMConversation.m

Lines changed: 44 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,69 +1341,59 @@ - (void)fillTypedMessage:(LCIMTypedMessage *)typedMessage withFile:(LCFile *)fil
13411341
{
13421342
NSMutableDictionary *metaData = (file.metaData.mutableCopy
13431343
?: [NSMutableDictionary dictionary]);
1344-
switch (typedMessage.mediaType) {
1345-
case kLCIMMessageMediaTypeImage:
1346-
{
1347-
double width = [metaData[@"width"] doubleValue];
1348-
double height = [metaData[@"height"] doubleValue];
1349-
if (!(width > 0 && height > 0)) {
1344+
if (typedMessage.mediaType == LCIMMessageMediaTypeImage) {
1345+
double width = [metaData[@"width"] doubleValue];
1346+
double height = [metaData[@"height"] doubleValue];
1347+
if (!(width > 0 && height > 0)) {
13501348
#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH
1351-
UIImage *image = ({
1352-
UIImage *image;
1353-
NSString *cachedPath = file.persistentCachePath;
1354-
if ([[NSFileManager defaultManager] fileExistsAtPath:cachedPath]) {
1355-
NSData *data = [NSData dataWithContentsOfFile:cachedPath];
1356-
image = [UIImage imageWithData:data];
1357-
}
1358-
image;
1359-
});
1360-
width = image.size.width * image.scale;
1361-
height = image.size.height * image.scale;
1362-
#elif TARGET_OS_OSX
1363-
NSImage *image = ({
1364-
NSImage *image;
1365-
NSString *cachedPath = file.persistentCachePath;
1366-
if ([[NSFileManager defaultManager] fileExistsAtPath:cachedPath]) {
1367-
NSData *data = [NSData dataWithContentsOfFile:cachedPath];
1368-
image = [[NSImage alloc] initWithData:data];
1369-
}
1370-
image;
1371-
});
1372-
width = image.size.width;
1373-
height = image.size.height;
1374-
#endif
1375-
if (width > 0) {
1376-
metaData[@"width"] = @(width);
1349+
UIImage *image = ({
1350+
UIImage *image;
1351+
NSString *cachedPath = file.persistentCachePath;
1352+
if ([[NSFileManager defaultManager] fileExistsAtPath:cachedPath]) {
1353+
NSData *data = [NSData dataWithContentsOfFile:cachedPath];
1354+
image = [UIImage imageWithData:data];
13771355
}
1378-
if (height > 0) {
1379-
metaData[@"height"] = @(height);
1356+
image;
1357+
});
1358+
width = image.size.width * image.scale;
1359+
height = image.size.height * image.scale;
1360+
#elif TARGET_OS_OSX
1361+
NSImage *image = ({
1362+
NSImage *image;
1363+
NSString *cachedPath = file.persistentCachePath;
1364+
if ([[NSFileManager defaultManager] fileExistsAtPath:cachedPath]) {
1365+
NSData *data = [NSData dataWithContentsOfFile:cachedPath];
1366+
image = [[NSImage alloc] initWithData:data];
13801367
}
1368+
image;
1369+
});
1370+
width = image.size.width;
1371+
height = image.size.height;
1372+
#endif
1373+
if (width > 0) {
1374+
metaData[@"width"] = @(width);
1375+
}
1376+
if (height > 0) {
1377+
metaData[@"height"] = @(height);
13811378
}
13821379
}
1383-
break;
1384-
case kLCIMMessageMediaTypeAudio:
1385-
case kLCIMMessageMediaTypeVideo:
1386-
{
1387-
double seconds = [metaData[@"duration"] doubleValue];
1388-
if (!(seconds > 0)) {
1389-
NSString *path = file.persistentCachePath;
1390-
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
1391-
NSURL *fileURL = [NSURL fileURLWithPath:path];
1392-
if (fileURL) {
1393-
AVURLAsset* audioAsset = [AVURLAsset URLAssetWithURL:fileURL
1394-
options:nil];
1395-
seconds = CMTimeGetSeconds(audioAsset.duration);
1396-
if (seconds > 0) {
1397-
metaData[@"duration"] = @(seconds);
1398-
}
1380+
} else if (typedMessage.mediaType == LCIMMessageMediaTypeAudio ||
1381+
typedMessage.mediaType == LCIMMessageMediaTypeVideo) {
1382+
double seconds = [metaData[@"duration"] doubleValue];
1383+
if (!(seconds > 0)) {
1384+
NSString *path = file.persistentCachePath;
1385+
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
1386+
NSURL *fileURL = [NSURL fileURLWithPath:path];
1387+
if (fileURL) {
1388+
AVURLAsset* audioAsset = [AVURLAsset URLAssetWithURL:fileURL
1389+
options:nil];
1390+
seconds = CMTimeGetSeconds(audioAsset.duration);
1391+
if (seconds > 0) {
1392+
metaData[@"duration"] = @(seconds);
13991393
}
14001394
}
14011395
}
14021396
}
1403-
break;
1404-
case kLCIMMessageMediaTypeFile:
1405-
default:
1406-
break;
14071397
}
14081398
NSString *fileName = file.name;
14091399
if (fileName) {

AVOS/Sources/Realtime/IM/Message/LCIMMessage.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,17 @@
88

99
#import "LCIMCommon.h"
1010

11-
typedef NS_ENUM(int32_t, LCIMMessageMediaType) {
11+
typedef int32_t LCIMMessageMediaType NS_TYPED_EXTENSIBLE_ENUM;
12+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeNone;
13+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeText;
14+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeImage;
15+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeAudio;
16+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeVideo;
17+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeLocation;
18+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeFile;
19+
FOUNDATION_EXPORT const LCIMMessageMediaType LCIMMessageMediaTypeRecalled;
20+
21+
typedef NS_ENUM(int32_t, kLCIMMessageMediaType) {
1222
kLCIMMessageMediaTypeNone = 0,
1323
kLCIMMessageMediaTypeText = -1,
1424
kLCIMMessageMediaTypeImage = -2,
@@ -17,7 +27,7 @@ typedef NS_ENUM(int32_t, LCIMMessageMediaType) {
1727
kLCIMMessageMediaTypeLocation = -5,
1828
kLCIMMessageMediaTypeFile = -6,
1929
kLCIMMessageMediaTypeRecalled = -127
20-
};
30+
} __deprecated_enum_msg("Deprecated! please use `LCIMMessageMediaType` instead, this ENUM may be removed in the future.");
2131

2232
typedef NS_ENUM(int8_t, LCIMMessageIOType) {
2333
LCIMMessageIOTypeIn = 1,

AVOS/Sources/Realtime/IM/Message/LCIMMessage.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@
1212
#import "LCIMConversation_Internal.h"
1313
#import "LCIMTypedMessage_Internal.h"
1414

15+
const LCIMMessageMediaType LCIMMessageMediaTypeNone = 0;
16+
const LCIMMessageMediaType LCIMMessageMediaTypeText = -1;
17+
const LCIMMessageMediaType LCIMMessageMediaTypeImage = -2;
18+
const LCIMMessageMediaType LCIMMessageMediaTypeAudio = -3;
19+
const LCIMMessageMediaType LCIMMessageMediaTypeVideo = -4;
20+
const LCIMMessageMediaType LCIMMessageMediaTypeLocation = -5;
21+
const LCIMMessageMediaType LCIMMessageMediaTypeFile = -6;
22+
const LCIMMessageMediaType LCIMMessageMediaTypeRecalled = -127;
23+
1524
@implementation LCIMMessagePatchedReason
1625

1726
@end

AVOS/Sources/Realtime/IM/TypedMessages/LCIMAudioMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ + (void)load
1818

1919
+ (LCIMMessageMediaType)classMediaType
2020
{
21-
return kLCIMMessageMediaTypeAudio;
21+
return LCIMMessageMediaTypeAudio;
2222
}
2323

2424
- (double)size {

AVOS/Sources/Realtime/IM/TypedMessages/LCIMFileMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ + (void)load
1818

1919
+ (LCIMMessageMediaType)classMediaType
2020
{
21-
return kLCIMMessageMediaTypeFile;
21+
return LCIMMessageMediaTypeFile;
2222
}
2323

2424
- (double)size {

AVOS/Sources/Realtime/IM/TypedMessages/LCIMImageMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ + (void)load
1818

1919
+ (LCIMMessageMediaType)classMediaType
2020
{
21-
return kLCIMMessageMediaTypeImage;
21+
return LCIMMessageMediaTypeImage;
2222
}
2323

2424
- (double)width {

AVOS/Sources/Realtime/IM/TypedMessages/LCIMLocationMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ + (void)load
1919

2020
+ (LCIMMessageMediaType)classMediaType
2121
{
22-
return kLCIMMessageMediaTypeLocation;
22+
return LCIMMessageMediaTypeLocation;
2323
}
2424

2525
+ (instancetype)messageWithText:(NSString *)text

AVOS/Sources/Realtime/IM/TypedMessages/LCIMRecalledMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ + (void)load
2020

2121
+ (LCIMMessageMediaType)classMediaType
2222
{
23-
return kLCIMMessageMediaTypeRecalled;
23+
return LCIMMessageMediaTypeRecalled;
2424
}
2525

2626
@end

AVOS/Sources/Realtime/IM/TypedMessages/LCIMTextMessage.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ + (void)load
1818

1919
+ (LCIMMessageMediaType)classMediaType
2020
{
21-
return kLCIMMessageMediaTypeText;
21+
return LCIMMessageMediaTypeText;
2222
}
2323

2424
+ (instancetype)messageWithText:(NSString *)text

AVOS/Sources/Realtime/IM/TypedMessages/LCIMTypedMessage.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
@class LCFile;
1212
@class LCGeoPoint;
1313

14-
15-
typedef int32_t MessageMediaType;
16-
1714
NS_ASSUME_NONNULL_BEGIN
1815

1916
@protocol LCIMTypedMessageSubclassing <NSObject>
@@ -23,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
2320
/// The type of the typed message,
2421
/// The zero and negative number is reserved for default typed message,
2522
/// Any other typed message should use positive number.
26-
+ (MessageMediaType)classMediaType;
23+
+ (LCIMMessageMediaType)classMediaType;
2724

2825
@end
2926

0 commit comments

Comments
 (0)