HyphenateChatSDK  4.14.0
IEMChatManager.h
1 
15 #import <Foundation/Foundation.h>
16 
17 #import "EMCommonDefs.h"
18 #import "EMChatManagerDelegate.h"
19 #import "EMConversation.h"
20 
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 
33 #import "EMGroupMessageAck.h"
34 #import "EMTranslateLanguage.h"
35 #import "EMFetchServerMessagesOption.h"
36 #import "EMConversationFilter.h"
37 
45 typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
46  EMMessageFetchHistoryDirectionUp = 0,
47  EMMessageFetchHistoryDirectionDown
49 };
50 
51 
52 @class EMError;
53 
65 @protocol IEMChatManager <NSObject>
66 
67 @required
68 
69 #pragma mark - Delegate
70 
84 - (void)addDelegate:(id<EMChatManagerDelegate> _Nullable)aDelegate
85  delegateQueue:(dispatch_queue_t _Nullable)aQueue;
86 
98 - (void)removeDelegate:(id<EMChatManagerDelegate> _Nonnull)aDelegate;
99 
100 #pragma mark - Conversation
101 
117 - (NSArray<EMConversation *> * _Nullable)getAllConversations;
118 
144 - (NSArray<EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
145 
146 
155 
177 - (NSArray<EMConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
178 
190 - (void)getConversationsFromServer:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
191 
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;
234 
254 - (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
255 
275 - (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(EMError * _Nullable error))completionBlock;
276 
292 - (EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
293 
317 - (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
318  type:(EMConversationType)aType
319  createIfNotExist:(BOOL)aIfCreate;
320 
348 - (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
349  type:(EMConversationType)aType
350  createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
351 
372 - (void)deleteConversation:(NSString * _Nonnull)aConversationId
373  isDeleteMessages:(BOOL)aIsDeleteMessages
374  completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError *_Nullable aError))aCompletionBlock;
375 
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;
402 
423 - (void)deleteConversations:(NSArray<EMConversation *> * _Nullable)aConversations
424  isDeleteMessages:(BOOL)aIsDeleteMessages
425  completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
426 
442 - (void)importConversations:(NSArray<EMConversation *> * _Nullable)aConversations
443  completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
444 
445 #pragma mark - Message
446 
461 - (EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
462 
482 - (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
483 
498 - (void)importMessages:(NSArray<EMChatMessage *> * _Nonnull)aMessages
499  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
500 
521 - (void)updateMessage:(EMChatMessage *_Nonnull)aMessage
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;
543 
575 - (void)modifyMessage:(NSString *_Nonnull)messageId
576  body:(EMMessageBody *_Nullable)body
577  ext:(NSDictionary* _Nullable)ext
578  completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
579 
600 - (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
601  toUser:(NSString * _Nonnull)aUsername
602  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
603 
604 
627 - (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
628  toGroup:(NSString * _Nonnull)aGroupId
629  content:(NSString * _Nullable)aContent
630  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
631 
665 - (void)ackConversationRead:(NSString * _Nonnull)conversationId
666  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
667 
696 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
697  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
698 
719 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(EMError * _Nullable))aCompletionBlock;
739 - (void)sendMessage:(EMChatMessage *_Nonnull)aMessage
740  progress:(void (^_Nullable)(int progress))aProgressBlock
741  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
742 
758 - (void)resendMessage:(EMChatMessage *_Nonnull)aMessage
759  progress:(void (^_Nullable)(int progress))aProgressBlock
760  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
761 
781 - (void)downloadMessageThumbnail:(EMChatMessage *_Nonnull)aMessage
782  progress:(void (^_Nullable)(int progress))aProgressBlock
783  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
784 
808 - (void)downloadMessageAttachment:(EMChatMessage *_Nonnull)aMessage
809  progress:(void (^_Nullable)(int progress))aProgressBlock
810  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
811 
829 - (void)downloadAndParseCombineMessage:(EMChatMessage* _Nonnull)aMessage
830  completion:(void (^_Nullable)(NSArray<EMChatMessage *>*_Nullable messages, EMError *_Nullable error))aCompletionBlock;
831 
858 - (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
859  conversationType:(EMConversationType)aConversationType
860  startMessageId:(NSString *_Nullable)aStartMessageId
861  fetchDirection:(EMMessageFetchHistoryDirection)direction
862  pageSize:(int)aPageSize
863  error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
888 - (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
889  conversationType:(EMConversationType)aConversationType
890  startMessageId:(NSString *_Nullable)aStartMessageId
891  pageSize:(int)aPageSize
892  error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
893 
894 
919 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
920  conversationType:(EMConversationType)aConversationType
921  startMessageId:(NSString *_Nullable)aStartMessageId
922  pageSize:(int)aPageSize
923  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
950 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
951  conversationType:(EMConversationType)aConversationType
952  startMessageId:(NSString *_Nullable)aStartMessageId
953  fetchDirection:(EMMessageFetchHistoryDirection)direction
954  pageSize:(int)aPageSize
955  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
956 
957 
958 
959 
988 - (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
989  groupId:(NSString *_Nonnull)aGroupId
990  startGroupAckId:(NSString *_Nonnull)aGroupAckId
991  pageSize:(int)aPageSize
992  completion:(void (^_Nullable)(EMCursorResult<EMGroupMessageAck *> *_Nullable aResult, EMError *_Nullable error, int totalCount))aCompletionBlock;
993 
1017 - (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1018  tag:(NSString *_Nonnull)aTag
1019  reason:(NSString *_Nonnull)aReason
1020  completion:(void(^_Nullable)(EMError* _Nullable error))aCompletion;
1021 
1038 - (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1039  completion:(void(^)(EMError*error))aCompletion;
1040 
1041 
1042 
1059 - (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1076 - (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1077 
1078 
1094 - (void)translateMessage:(EMChatMessage * _Nonnull)aMessage
1095  targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1096  completion:(void (^_Nullable)(EMChatMessage * _Nullable message, EMError * _Nullable error))aCompletionBlock;
1097 
1110 - (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<EMTranslateLanguage*>* _Nullable languages,EMError* _Nullable error))aCompletionBlock;
1111 
1148 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1149  timestamp:(long long)aTimestamp
1150  count:(int)aCount
1151  fromUser:(NSString* _Nullable)aUsername
1152  searchDirection:(EMMessageSearchDirection)aDirection;
1153 
1184 - (void)loadMessagesWithType:(EMMessageBodyType)aType
1185  timestamp:(long long)aTimestamp
1186  count:(int)aCount
1187  fromUser:(NSString*)aUsername
1188  searchDirection:(EMMessageSearchDirection)aDirection
1189  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1190 
1191 
1222 - (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1223  timestamp:(long long)aTimestamp
1224  count:(int)aCount
1225  fromUser:(NSString* _Nullable)aUsername
1226  searchDirection:(EMMessageSearchDirection)aDirection
1227  completion:(void (^_Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1228 
1265 - (NSArray<EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1266  timestamp:(long long)aTimestamp
1267  count:(int)aCount
1268  fromUser:(NSString*)aSender
1269  searchDirection:(EMMessageSearchDirection)aDirection;
1270 
1300 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1301  timestamp:(long long)aTimestamp
1302  count:(int)aCount
1303  fromUser:(NSString*)aSender
1304  searchDirection:(EMMessageSearchDirection)aDirection
1305  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1306 
1338 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1339  timestamp:(long long)aTimestamp
1340  count:(int)aCount
1341  fromUser:(NSString*)aSender
1342  searchDirection:(EMMessageSearchDirection)aDirection
1343  scope:(EMMessageSearchScope)aScope
1344  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1345 
1370 - (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1371  timestamp:(long long)aTimestamp
1372  fromUser:(NSString*_Nullable )aSender
1373  searchDirection:(EMMessageSearchDirection)aDirection
1374  scope:(EMMessageSearchScope)aScope
1375  completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, EMError * _Nullable aError))aCompletionBlock;
1376 
1377 NS_ASSUME_NONNULL_BEGIN
1393 - (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1394 
1410 - (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1411 
1429 - (void)getReactionList:(NSArray <NSString *>*)messageIds
1430  groupId:(nullable NSString *)groupId
1431  chatType:(EMChatType)chatType
1432  completion:(void (^)(NSDictionary <NSString *, NSArray<EMMessageReaction *> *> *, EMError * _Nullable))completion;
1433 
1453 - (void)getReactionDetail:(NSString *)messageId
1454  reaction:(NSString *)reaction
1455  cursor:(nullable NSString *)cursor
1456  pageSize:(uint64_t)pageSize
1457  completion:(void (^)(EMMessageReaction *, NSString * _Nullable cursor, EMError * _Nullable))completion;
1458 
1489 - (void)fetchMessagesFromServerBy:(NSString* )conversationId
1490  conversationType:(EMConversationType)type
1491  cursor:(NSString* _Nullable)cursor
1492  pageSize:(NSUInteger)pageSize
1493  option:(EMFetchServerMessagesOption* _Nullable)option
1494  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*>* _Nullable result, EMError* _Nullable aError))aCompletionBlock;
1495 
1516 - (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1517 
1539 - (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1540 
1557 - (void)getConversationsFromServerWithCursor:(NSString * _Nullable)cursor filter:(EMConversationFilter* _Nonnull)filter completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
1558 
1581 - (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
1582 
1596 - (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1611 - (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1612 
1626 - (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<EMChatMessage*>* _Nullable messages,EMError * _Nullable aError))aCompletionBlock;
1627 
1640 
1652 - (void)getMessageCountWithCompletion:(void (^)(NSInteger count, EMError * _Nullable aError))completion;
1653 
1667 - (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1668  withConversationId:(NSString * _Nonnull)aConversationId
1669  completion:(void (^ _Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1670 
1671 NS_ASSUME_NONNULL_END
1672 
1673 @end
EMError * markAllConversationsAsRead()
Definition: EMConversationFilter.h:21
Definition: EMChatManagerDelegate.h:31
Definition: EMConversation.h:114
Definition: EMError.h:26
Definition: EMMessageReaction.h:20
Definition: EMMessageBody.h:45
Definition: EMChatMessage.h:113
Definition: EMTranslateLanguage.h:19
void cleanConversationsMemoryCache()
Definition: EMGroupMessageAck.h:20
Definition: EMFetchServerMessagesOption.h:22
Definition: EMCursorResult.h:27
Definition: IEMChatManager.h:65
NSArray< EMConversation * > *_Nullable getAllConversations()