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"
33#import "EMGroupMessageAck.h"
34#import "EMTranslateLanguage.h"
35#import "EMFetchServerMessagesOption.h"
36#import "EMConversationFilter.h"
45typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
46 EMMessageFetchHistoryDirectionUp = 0,
47 EMMessageFetchHistoryDirectionDown
69#pragma mark - Delegate
85 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
100#pragma mark - Conversation
144- (NSArray<
EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(
EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
190- (void)getConversationsFromServer:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
207- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
208 pageSize:(NSUInteger)pageSize
209 completion:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
233- (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
254- (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
275- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable
void(^)(
EMError * _Nullable error))completionBlock;
292- (
EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
317- (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
318 type:(EMConversationType)aType
319 createIfNotExist:(BOOL)aIfCreate;
348- (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
349 type:(EMConversationType)aType
350 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
372- (void)deleteConversation:(NSString * _Nonnull)aConversationId
373 isDeleteMessages:(BOOL)aIsDeleteMessages
374 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError *_Nullable aError))aCompletionBlock;
398 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
399 conversationType:(EMConversationType)aConversationType
400 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
401 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError * _Nullable aError))aCompletionBlock;
423- (void)deleteConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
424 isDeleteMessages:(BOOL)aIsDeleteMessages
425 completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
442- (void)importConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
443 completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
445#pragma mark - Message
461- (
EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
482- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
498- (void)importMessages:(NSArray<
EMChatMessage *> * _Nonnull)aMessages
499 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
522 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable aMessage,
EMError * _Nullable aError))aCompletionBlock;
542- (void)modifyMessage:(NSString *_Nonnull)messageId body:(
EMMessageBody *_Nonnull)body completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
575- (void)modifyMessage:(NSString *_Nonnull)messageId
577 ext:(NSDictionary* _Nullable)ext
578 completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
600- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
601 toUser:(NSString * _Nonnull)aUsername
602 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
627- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
628 toGroup:(NSString * _Nonnull)aGroupId
629 content:(NSString * _Nullable)aContent
630 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
665- (void)ackConversationRead:(NSString * _Nonnull)conversationId
666 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
686- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
687 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
709- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(
void (^_Nonnull)(
EMError * _Nullable))aCompletionBlock;
730 progress:(
void (^_Nullable)(
int progress))aProgressBlock
731 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
749 progress:(
void (^_Nullable)(
int progress))aProgressBlock
750 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
771- (void)downloadMessageThumbnail:(
EMChatMessage *_Nonnull)aMessage
772 progress:(
void (^_Nullable)(
int progress))aProgressBlock
773 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
798- (void)downloadMessageAttachment:(
EMChatMessage *_Nonnull)aMessage
799 progress:(
void (^_Nullable)(
int progress))aProgressBlock
800 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
819- (void)downloadAndParseCombineMessage:(
EMChatMessage* _Nonnull)aMessage
820 completion:(
void (^_Nullable)(NSArray<
EMChatMessage *>*_Nullable messages,
EMError *_Nullable error))aCompletionBlock;
849 conversationType:(EMConversationType)aConversationType
850 startMessageId:(NSString *_Nullable)aStartMessageId
851 fetchDirection:(EMMessageFetchHistoryDirection)direction
852 pageSize:(
int)aPageSize
853 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
879 conversationType:(EMConversationType)aConversationType
880 startMessageId:(NSString *_Nullable)aStartMessageId
881 pageSize:(
int)aPageSize
882 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
909- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
910 conversationType:(EMConversationType)aConversationType
911 startMessageId:(NSString *_Nullable)aStartMessageId
912 pageSize:(
int)aPageSize
913 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
940- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
941 conversationType:(EMConversationType)aConversationType
942 startMessageId:(NSString *_Nullable)aStartMessageId
943 fetchDirection:(EMMessageFetchHistoryDirection)direction
944 pageSize:(
int)aPageSize
945 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
978- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
979 groupId:(NSString *_Nonnull)aGroupId
980 startGroupAckId:(NSString *_Nonnull)aGroupAckId
981 pageSize:(
int)aPageSize
1007- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1008 tag:(NSString *_Nonnull)aTag
1009 reason:(NSString *_Nonnull)aReason
1010 completion:(
void(^_Nullable)(
EMError* _Nullable error))aCompletion;
1028- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1029 completion:(
void(^)(
EMError*error))aCompletion;
1049- (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1066- (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1085 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1086 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable message,
EMError * _Nullable error))aCompletionBlock;
1100- (void)fetchSupportedLanguages:(
void(^_Nullable)(NSArray<
EMTranslateLanguage*>* _Nullable languages,
EMError* _Nullable error))aCompletionBlock;
1138- (NSArray<
EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1139 timestamp:(
long long)aTimestamp
1141 fromUser:(NSString* _Nullable)aUsername
1142 searchDirection:(EMMessageSearchDirection)aDirection;
1174- (void)loadMessagesWithType:(EMMessageBodyType)aType
1175 timestamp:(
long long)aTimestamp
1177 fromUser:(NSString*)aUsername
1178 searchDirection:(EMMessageSearchDirection)aDirection
1211- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1212 timestamp:(
long long)aTimestamp
1214 fromUser:(NSString* _Nullable)aUsername
1215 searchDirection:(EMMessageSearchDirection)aDirection
1216 completion:(
void (^_Nonnull)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
1254- (NSArray<
EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1255 timestamp:(
long long)aTimestamp
1257 fromUser:(NSString*)aSender
1258 searchDirection:(EMMessageSearchDirection)aDirection;
1289- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1290 timestamp:(
long long)aTimestamp
1292 fromUser:(NSString*)aSender
1293 searchDirection:(EMMessageSearchDirection)aDirection
1327- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1328 timestamp:(
long long)aTimestamp
1330 fromUser:(NSString*)aSender
1331 searchDirection:(EMMessageSearchDirection)aDirection
1332 scope:(EMMessageSearchScope)aScope
1335NS_ASSUME_NONNULL_BEGIN
1351- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1368- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1387- (void)getReactionList:(NSArray <NSString *>*)messageIds
1388 groupId:(nullable NSString *)groupId
1389 chatType:(EMChatType)chatType
1411- (void)getReactionDetail:(NSString *)messageId
1412 reaction:(NSString *)reaction
1413 cursor:(nullable NSString *)cursor
1414 pageSize:(uint64_t)pageSize
1447- (void)fetchMessagesFromServerBy:(NSString* )conversationId
1448 conversationType:(EMConversationType)type
1449 cursor:(NSString* _Nullable)cursor
1450 pageSize:(NSUInteger)pageSize
1474- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1497- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1539- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1554- (void)pinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1569- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1584- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(
void (^_Nullable)(NSArray<
EMChatMessage*>* _Nullable messages,
EMError * _Nullable aError))aCompletionBlock;
1610- (void)getMessageCountWithCompletion:(
void (^)(NSInteger count,
EMError * _Nullable aError))completion;
1612NS_ASSUME_NONNULL_END
Definition: EMChatMessage.h:114
Definition: EMConversationFilter.h:22
Definition: EMConversation.h:115
Definition: EMCursorResult.h:27
Definition: EMFetchServerMessagesOption.h:23
Definition: EMGroupMessageAck.h:21
Definition: EMMessageBody.h:46
Definition: EMMessageReaction.h:21
Definition: EMTranslateLanguage.h:20
Definition: EMChatManagerDelegate.h:31
Definition: IEMChatManager.h:65
NSArray< EMConversation * > *_Nullable getAllConversations()
EMError * markAllConversationsAsRead()
void cleanConversationsMemoryCache()