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 "EMVoiceParam.h"
36 #import "EMFetchServerMessagesOption.h"
37 #import "EMConversationFilter.h"
46 typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
47 EMMessageFetchHistoryDirectionUp = 0,
48 EMMessageFetchHistoryDirectionDown
70 #pragma mark - Delegate
86 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
101 #pragma mark - Conversation
145 - (NSArray<
EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(
EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
191 - (void)getConversationsFromServer:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
208 - (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
209 pageSize:(NSUInteger)pageSize
210 completion:(
void (^_Nullable)(NSArray<
EMConversation *> * _Nullable aConversations,
EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
234 - (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
255 - (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull
void (^)(
EMCursorResult<
EMConversation *> * _Nullable result,
EMError * _Nullable error))completionBlock;
276 - (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable
void(^)(
EMError * _Nullable error))completionBlock;
293 - (
EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
318 - (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
319 type:(EMConversationType)aType
320 createIfNotExist:(BOOL)aIfCreate;
349 - (
EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
350 type:(EMConversationType)aType
351 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
373 - (void)deleteConversation:(NSString * _Nonnull)aConversationId
374 isDeleteMessages:(BOOL)aIsDeleteMessages
375 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError *_Nullable aError))aCompletionBlock;
399 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
400 conversationType:(EMConversationType)aConversationType
401 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
402 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
EMError * _Nullable aError))aCompletionBlock;
424 - (void)deleteConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
425 isDeleteMessages:(BOOL)aIsDeleteMessages
426 completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
443 - (void)importConversations:(NSArray<
EMConversation *> * _Nullable)aConversations
444 completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
446 #pragma mark - Message
462 - (
EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
483 - (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
499 - (void)importMessages:(NSArray<
EMChatMessage *> * _Nonnull)aMessages
500 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
523 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable aMessage,
EMError * _Nullable aError))aCompletionBlock;
543 - (void)modifyMessage:(NSString *_Nonnull)messageId body:(
EMMessageBody *_Nonnull)body completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
576 - (void)modifyMessage:(NSString *_Nonnull)messageId
578 ext:(NSDictionary* _Nullable)ext
579 completion:(
void (^_Nonnull)(
EMError * _Nullable error,
EMChatMessage *_Nullable message))completionBlock;
601 - (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
602 toUser:(NSString * _Nonnull)aUsername
603 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
628 - (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
629 toGroup:(NSString * _Nonnull)aGroupId
630 content:(NSString * _Nullable)aContent
631 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
666 - (void)ackConversationRead:(NSString * _Nonnull)conversationId
667 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
697 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
698 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
720 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(
void (^_Nonnull)(
EMError * _Nullable))aCompletionBlock;
741 progress:(
void (^_Nullable)(
int progress))aProgressBlock
742 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
760 progress:(
void (^_Nullable)(
int progress))aProgressBlock
761 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
782 - (void)downloadMessageThumbnail:(
EMChatMessage *_Nonnull)aMessage
783 progress:(
void (^_Nullable)(
int progress))aProgressBlock
784 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
809 - (void)downloadMessageAttachment:(
EMChatMessage *_Nonnull)aMessage
810 progress:(
void (^_Nullable)(
int progress))aProgressBlock
811 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
835 - (void)downloadBigImageAttachment:(
EMChatMessage *_Nonnull)aMessage
836 progress:(
void (^_Nullable)(
int progress))aProgressBlock
837 completion:(
void (^_Nullable)(
EMChatMessage *_Nullable message,
EMError *_Nullable error))aCompletionBlock;
856 - (void)downloadAndParseCombineMessage:(
EMChatMessage* _Nonnull)aMessage
857 completion:(
void (^_Nullable)(NSArray<
EMChatMessage *>*_Nullable messages,
EMError *_Nullable error))aCompletionBlock;
886 conversationType:(EMConversationType)aConversationType
887 startMessageId:(NSString *_Nullable)aStartMessageId
888 fetchDirection:(EMMessageFetchHistoryDirection)direction
889 pageSize:(
int)aPageSize
890 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
916 conversationType:(EMConversationType)aConversationType
917 startMessageId:(NSString *_Nullable)aStartMessageId
918 pageSize:(
int)aPageSize
919 error:(
EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
946 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
947 conversationType:(EMConversationType)aConversationType
948 startMessageId:(NSString *_Nullable)aStartMessageId
949 pageSize:(
int)aPageSize
950 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
977 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
978 conversationType:(EMConversationType)aConversationType
979 startMessageId:(NSString *_Nullable)aStartMessageId
980 fetchDirection:(EMMessageFetchHistoryDirection)direction
981 pageSize:(
int)aPageSize
982 completion:(
void (^_Nullable)(
EMCursorResult<
EMChatMessage*> *_Nullable aResult,
EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
1015 - (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
1016 groupId:(NSString *_Nonnull)aGroupId
1017 startGroupAckId:(NSString *_Nonnull)aGroupAckId
1018 pageSize:(
int)aPageSize
1044 - (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1045 tag:(NSString *_Nonnull)aTag
1046 reason:(NSString *_Nonnull)aReason
1047 completion:(
void(^_Nullable)(
EMError* _Nullable error))aCompletion;
1065 - (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1066 completion:(
void(^)(
EMError*error))aCompletion;
1086 - (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1103 - (void)removeMessagesFromServerWithConversation:(
EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(
void (^ _Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1122 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1123 completion:(
void (^_Nullable)(
EMChatMessage * _Nullable message,
EMError * _Nullable error))aCompletionBlock;
1150 - (void)voiceMessageToText:(
EMChatMessage * _Nonnull)aMessage
1151 completion:(
void (^_Nullable)(NSString * _Nullable text,
EMError * _Nullable error))aCompletionBlock;
1176 - (void)voiceFileToText:(NSString * _Nonnull)aFilePath
1178 completion:(
void (^_Nullable)(NSString * _Nullable text,
EMError * _Nullable error))aCompletionBlock;
1192 - (void)fetchSupportedLanguages:(
void(^_Nullable)(NSArray<
EMTranslateLanguage*>* _Nullable languages,
EMError* _Nullable error))aCompletionBlock;
1230 - (NSArray<
EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1231 timestamp:(
long long)aTimestamp
1233 fromUser:(NSString* _Nullable)aUsername
1234 searchDirection:(EMMessageSearchDirection)aDirection;
1266 - (void)loadMessagesWithType:(EMMessageBodyType)aType
1267 timestamp:(
long long)aTimestamp
1269 fromUser:(NSString*)aUsername
1270 searchDirection:(EMMessageSearchDirection)aDirection
1304 - (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1305 timestamp:(
long long)aTimestamp
1307 fromUser:(NSString* _Nullable)aUsername
1308 searchDirection:(EMMessageSearchDirection)aDirection
1309 completion:(
void (^_Nonnull)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
1347 - (NSArray<
EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1348 timestamp:(
long long)aTimestamp
1350 fromUser:(NSString*)aSender
1351 searchDirection:(EMMessageSearchDirection)aDirection;
1382 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1383 timestamp:(
long long)aTimestamp
1385 fromUser:(NSString*)aSender
1386 searchDirection:(EMMessageSearchDirection)aDirection
1420 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1421 timestamp:(
long long)aTimestamp
1423 fromUser:(NSString*)aSender
1424 searchDirection:(EMMessageSearchDirection)aDirection
1425 scope:(EMMessageSearchScope)aScope
1452 - (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1453 timestamp:(
long long)aTimestamp
1454 fromUser:(NSString*_Nullable )aSender
1455 searchDirection:(EMMessageSearchDirection)aDirection
1456 scope:(EMMessageSearchScope)aScope
1457 completion:(
void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages,
EMError * _Nullable aError))aCompletionBlock;
1459 NS_ASSUME_NONNULL_BEGIN
1475 - (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1492 - (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable
void(^)(
EMError * _Nullable))completion;
1511 - (void)getReactionList:(NSArray <NSString *>*)messageIds
1512 groupId:(nullable NSString *)groupId
1513 chatType:(EMChatType)chatType
1535 - (void)getReactionDetail:(NSString *)messageId
1536 reaction:(NSString *)reaction
1537 cursor:(nullable NSString *)cursor
1538 pageSize:(uint64_t)pageSize
1571 - (void)fetchMessagesFromServerBy:(NSString* )conversationId
1572 conversationType:(EMConversationType)type
1573 cursor:(NSString* _Nullable)cursor
1574 pageSize:(NSUInteger)pageSize
1598 - (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1621 - (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(
void (^_Nullable)(
EMError* _Nullable aError))completion;
1663 - (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
1678 - (void)pinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1693 - (void)unpinMessage:(NSString* _Nonnull)messageId completion:(
void (^_Nullable)(
EMChatMessage* _Nullable message,
EMError * _Nullable aError))aCompletionBlock;
1708 - (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(
void (^_Nullable)(NSArray<
EMChatMessage*>* _Nullable messages,
EMError * _Nullable aError))aCompletionBlock;
1734 - (void)getMessageCountWithCompletion:(
void (^)(NSInteger count,
EMError * _Nullable aError))completion;
1749 - (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1750 withConversationId:(NSString * _Nonnull)aConversationId
1751 completion:(
void (^ _Nonnull)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
1753 NS_ASSUME_NONNULL_END
EMError * markAllConversationsAsRead()
Definition: EMConversationFilter.h:21
Definition: EMChatManagerDelegate.h:31
Definition: EMConversation.h:114
Definition: EMMessageReaction.h:20
Definition: EMMessageBody.h:45
Definition: EMChatMessage.h:154
Definition: EMTranslateLanguage.h:19
void cleanConversationsMemoryCache()
Definition: EMGroupMessageAck.h:20
Definition: EMFetchServerMessagesOption.h:22
Definition: EMCursorResult.h:27
Definition: EMVoiceParam.h:38
Definition: IEMChatManager.h:66
NSArray< EMConversation * > *_Nullable getAllConversations()