15#import <Foundation/Foundation.h>
17#import "EMCommonDefs.h"
18#import "EMChatManagerDelegate.h"
19#import "EMConversation.h"
21#import "EMChatMessage.h"
22#import "EMTextMessageBody.h"
23#import "EMLocationMessageBody.h"
24#import "EMCmdMessageBody.h"
25#import "EMFileMessageBody.h"
26#import "EMImageMessageBody.h"
27#import "EMVoiceMessageBody.h"
28#import "EMVideoMessageBody.h"
29#import "EMCustomMessageBody.h"
30#import "EMCombineMessageBody.h"
31#import "EMCursorResult.h"
32#import "EMPageResult.h"
34#import "EMGroupMessageAck.h"
35#import "EMTranslateLanguage.h"
36#import "EMVoiceParam.h"
37#import "EMFetchServerMessagesOption.h"
38#import "EMMessageSearchOption.h"
39#import "EMSearchServerMessageResult.h"
40#import "EMConversationFilter.h"
49typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
50 EMMessageFetchHistoryDirectionUp = 0,
51 EMMessageFetchHistoryDirectionDown
73#pragma mark - Delegate
89 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
104#pragma mark - Conversation
148- (NSArray<
EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(
EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
194- (void)getConversationsFromServer:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
211- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
212 pageSize:(NSUInteger)pageSize
213 completion:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
237- (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
258- (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
279- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable
void(^)(
EMError * _Nullable error))completionBlock;
296- (
EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
321- (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
322 type:(EMConversationType)aType
323 createIfNotExist:(BOOL)aIfCreate;
352- (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
353 type:(EMConversationType)aType
354 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
376- (void)deleteConversation:(NSString * _Nonnull)aConversationId
377 isDeleteMessages:(BOOL)aIsDeleteMessages
378 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError *_Nullable aError))aCompletionBlock;
402 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
403 conversationType:(EMConversationType)aConversationType
404 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
405 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError * _Nullable aError))aCompletionBlock;
427- (void)deleteConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
428 isDeleteMessages:(BOOL)aIsDeleteMessages
429 completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
446- (void)importConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
447 completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
449#pragma mark - Message
465- (
EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
486- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
502- (void)importMessages:(NSArray<
EMChatMessage *> * _Nonnull)aMessages
503 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
526 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable aMessage,
EMError * _Nullable aError))aCompletionBlock;
546- (void)modifyMessage:(NSString *_Nonnull)messageId body:(
EMMessageBody *_Nonnull)body completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
579- (void)modifyMessage:(NSString *_Nonnull)messageId
581 ext:(NSDictionary* _Nullable)ext
582 completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
604- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
605 toUser:(NSString * _Nonnull)aUsername
606 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
631- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
632 toGroup:(NSString * _Nonnull)aGroupId
633 content:(NSString * _Nullable)aContent
634 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
669- (void)ackConversationRead:(NSString * _Nonnull)conversationId
670 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
700- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
701 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
723- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(
void (^_Nonnull)(
EMError * _Nullable))aCompletionBlock;
744 progress:(
void (^_Nullable)(
int progress))aProgressBlock
745 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
763 progress:(
void (^_Nullable)(
int progress))aProgressBlock
764 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
785- (void)downloadMessageThumbnail:(
EMChatMessage *_Nonnull)aMessage
786 progress:(
void (^_Nullable)(
int progress))aProgressBlock
787 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
812- (void)downloadMessageAttachment:(
EMChatMessage *_Nonnull)aMessage
813 progress:(
void (^_Nullable)(
int progress))aProgressBlock
814 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
842- (void)downloadBigImageAttachment:(
EMChatMessage *_Nonnull)aMessage
843 progress:(
void (^_Nullable)(
int progress))aProgressBlock
844 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
863- (void)downloadAndParseCombineMessage:(
EMChatMessage* _Nonnull)aMessage
864 completion:(
void (^_Nullable)(NSArray<
EMChatMessage *>*_Nullable messages,
EMError *_Nullable error))aCompletionBlock;
893 conversationType:(EMConversationType)aConversationType
894 startMessageId:(NSString *_Nullable)aStartMessageId
895 fetchDirection:(EMMessageFetchHistoryDirection)direction
896 pageSize:(
int)aPageSize
897 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
923 conversationType:(EMConversationType)aConversationType
924 startMessageId:(NSString *_Nullable)aStartMessageId
925 pageSize:(
int)aPageSize
926 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
953- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
954 conversationType:(EMConversationType)aConversationType
955 startMessageId:(NSString *_Nullable)aStartMessageId
956 pageSize:(
int)aPageSize
957 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
984- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
985 conversationType:(EMConversationType)aConversationType
986 startMessageId:(NSString *_Nullable)aStartMessageId
987 fetchDirection:(EMMessageFetchHistoryDirection)direction
988 pageSize:(
int)aPageSize
989 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
1022- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
1023 groupId:(NSString *_Nonnull)aGroupId
1024 startGroupAckId:(NSString *_Nonnull)aGroupAckId
1025 pageSize:(
int)aPageSize
1051- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1052 tag:(NSString *_Nonnull)aTag
1053 reason:(NSString *_Nonnull)aReason
1054 completion:(
void(^_Nullable)(
EMError* _Nullable error))aCompletion;
1072- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1073 completion:(
void(^)(
EMError*error))aCompletion;
1093- (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1110- (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1129 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1130 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable message,
EMError * _Nullable error))aCompletionBlock;
1157- (void)voiceMessageToText:(
EMChatMessage * _Nonnull)aMessage
1158 completion:(
void (^_Nullable)(NSString * _Nullable text,
EMError * _Nullable error))aCompletionBlock;
1183- (void)voiceFileToText:(NSString * _Nonnull)aFilePath
1185 completion:(
void (^_Nullable)(NSString * _Nullable text,
EMError * _Nullable error))aCompletionBlock;
1199- (void)fetchSupportedLanguages:(
void(^_Nullable)(NSArray<
EMTranslateLanguage*>* _Nullable languages,
EMError* _Nullable error))aCompletionBlock;
1237- (NSArray<
EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1238 timestamp:(
long long)aTimestamp
1240 fromUser:(NSString* _Nullable)aUsername
1241 searchDirection:(EMMessageSearchDirection)aDirection;
1273- (void)loadMessagesWithType:(EMMessageBodyType)aType
1274 timestamp:(
long long)aTimestamp
1276 fromUser:(NSString*)aUsername
1277 searchDirection:(EMMessageSearchDirection)aDirection
1311- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1312 timestamp:(
long long)aTimestamp
1314 fromUser:(NSString* _Nullable)aUsername
1315 searchDirection:(EMMessageSearchDirection)aDirection
1316 completion:(
void (^_Nonnull)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
1354- (NSArray<
EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1355 timestamp:(
long long)aTimestamp
1357 fromUser:(NSString*)aSender
1358 searchDirection:(EMMessageSearchDirection)aDirection;
1389- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1390 timestamp:(
long long)aTimestamp
1392 fromUser:(NSString*)aSender
1393 searchDirection:(EMMessageSearchDirection)aDirection
1427- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1428 timestamp:(
long long)aTimestamp
1430 fromUser:(NSString*)aSender
1431 searchDirection:(EMMessageSearchDirection)aDirection
1432 scope:(EMMessageSearchScope)aScope
1459- (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1460 timestamp:(
long long)aTimestamp
1461 fromUser:(NSString*_Nullable )aSender
1462 searchDirection:(EMMessageSearchDirection)aDirection
1463 scope:(EMMessageSearchScope)aScope
1464 completion:(
void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages,
EMError * _Nullable aError))aCompletionBlock;
1466NS_ASSUME_NONNULL_BEGIN
1482- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1499- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1518- (void)getReactionList:(NSArray <NSString *>*)messageIds
1519 groupId:(nullable NSString *)groupId
1520 chatType:(EMChatType)chatType
1542- (void)getReactionDetail:(NSString *)messageId
1543 reaction:(NSString *)reaction
1544 cursor:(nullable NSString *)cursor
1545 pageSize:(uint64_t)pageSize
1578- (void)fetchMessagesFromServerBy:(NSString* )conversationId
1579 conversationType:(EMConversationType)type
1580 cursor:(NSString* _Nullable)cursor
1581 pageSize:(NSUInteger)pageSize
1606 pageSize:(NSInteger)pageSize
1607 pageNum:(NSInteger)pageNum
1630- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1653- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1695- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1710- (void)pinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1725- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1740- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(
void (^_Nullable)(NSArray<
EMChatMessage*>* _Nullable messages,
EMError * _Nullable aError))aCompletionBlock;
1766- (void)getMessageCountWithCompletion:(
void (^)(NSInteger count,
EMError * _Nullable aError))completion;
1781- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1782 withConversationId:(NSString * _Nonnull)aConversationId
1783 completion:(
void (^ _Nonnull)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
1785NS_ASSUME_NONNULL_END
Definition: EMChatMessage.h:155
Definition: EMConversationFilter.h:22
Definition: EMConversation.h:115
Definition: EMCursorResult.h:27
Definition: EMFetchServerMessagesOption.h:23
Definition: EMGroupMessageAck.h:21
Definition: EMMessageBody.h:55
Definition: EMMessageReaction.h:21
Definition: EMMessageSearchOption.h:31
Definition: EMPageResult.h:24
Definition: EMSearchServerMessageResult.h:27
Definition: EMTranslateLanguage.h:20
Definition: EMVoiceParam.h:39
Definition: EMChatManagerDelegate.h:31
Definition: IEMChatManager.h:69
NSArray< EMConversation * > *_Nullable getAllConversations()
EMError * markAllConversationsAsRead()
void cleanConversationsMemoryCache()